RSS

FPDF: Cabeceras y Datos

21 Nov

Empezando con este ejemplo concreto y sencillo les mostraré cómo hacer una cabecera de una tabla, es decir, poner los títulos que llevará su tabla; así mostrar los datos que llevará la tabla. A su vez, teniendo ambos métodos por separado, se pueden juntar en uno solo para tener un método que haga la tabla.

Para quienes anden ‘perdidos’ en la programación, debo aclarar lo siguiente: Todo lo que se declare y haga dentro de un método, se queda dentro del método. Es decir, podemos declarar la fuente y tamaño a utilizar y la posición (x, y) dentro el método y solo funcionará dentro de él. Una vez que finaliza el método se ‘salta’ a lo que esté enseguida después de ser llamado. (Espero haberme explicado bien 🙂 )

Basta de palabras. Veamos primero cómo hacer una cabecera vertical y horizontal con el siguiente código:

PDF.php

<?php
require('fpdf/fpdf.php');

class PDF extends FPDF
{
    function cabeceraVertical($cabecera)
    {
		$this->SetXY(10, 10); //Seleccionamos posición
		$this->SetFont('Arial','B',10); //Fuente, Negrita, tamaño

		foreach($cabecera as $columna)
		{
			//Parámetro con valor 2, cabecera vertical
	    	$this->Cell(30,7, utf8_decode($columna),1, 2 , 'L' );
    	}
    }

    function cabeceraHorizontal($cabecera)
    {
		$this->SetXY(10, 70);
		$this->SetFont('Arial','B',10);
		foreach($cabecera as $fila)
		{
			//Atención!! el parámetro valor 0, hace que sea horizontal
	    	$this->Cell(24,7, utf8_decode($fila),1, 0 , 'L' );
    	}
    }
} // FIN Class PDF
?>

index.php

<?php
include_once('PDF.php');
$pdf = new PDF();

$pdf->AddPage();

//Títulos que llevará la cabecera
$miCabecera = array('Nombre', 'Apellido', 'Matrícula', 'Edad', 'Estado Civil', 'Peso (kg)', 'Estatura (m)');

//Métodos llamados con el objeto $pdf
$pdf->cabeceraVertical($miCabecera);
$pdf->cabeceraHorizontal($miCabecera);

$pdf->Output(); //Salida al navegador
?>

Y esta es la salida:

Cabecera Vertical y Horizontal

Cabecera Vertical y Horizontal

____________________________________________________________________________________________________

Ahora para agregar datos se usa exactamente los mismos métodos para cada situación (vertical u horizontal) pero ajustando la posición de las nuevas celdas:

PDF.php

<?php
require('fpdf/fpdf.php');

class PDF extends FPDF
{
    function cabeceraVertical($cabecera)
    {
		$this->SetXY(10, 10);
		$this->SetFont('Arial','B',10);
		foreach($cabecera as $columna)
		{
			//Parámetro con valor 2, hace que la cabecera sea vertical
	    	$this->Cell(30,7, utf8_decode($columna),1, 2 , 'L' );
    	}
    }

    function datosVerticales($datos)
    {
		$this->SetXY(40, 10); //40 = 10 posiciónX_anterior + 30ancho Celdas de cabecera
		$this->SetFont('Arial','',10); //Fuente, Normal, tamaño
		foreach($datos as $columna)
		{
			$this->Cell(30,7, utf8_decode($columna),1, 2 , 'L' );
    	}
    }

    function cabeceraHorizontal($cabecera)
    {
		$this->SetXY(10, 70);
		$this->SetFont('Arial','B',10);
		foreach($cabecera as $fila)
		{
			//Atención!! el parámetro valor 0, hace que sea horizontal
	    	$this->Cell(24,7, utf8_decode($fila),1, 0 , 'L' );
    	}
    }

    function datosHorizontal($datos)
    {
		$this->SetXY(10,77); // 77 = 70 posiciónY_anterior + 7 altura de las de cabecera
		$this->SetFont('Arial','',10); //Fuente, normal, tamaño
		foreach($datos as $fila)
		{
			//Atención!! el parámetro valor 0, hace que sea horizontal
	    	$this->Cell(24,7, utf8_decode($fila),1, 0 , 'L' );
    	}
    }

} // FIN Class PDF
?>

index.php

<?php
include_once('PDF.php');
$pdf = new PDF();

$pdf->AddPage();

$miCabecera = array('Nombre', 'Apellido', 'Matrícula', 'Edad', 'Estado Civil', 'Peso (kg)', 'Estatura (m)');
$misDatos = array('Hugo', 'Martínez', '20420423', '11', 'Soltero', '98', '1.85');

$pdf->cabeceraVertical($miCabecera);
$pdf->datosVerticales($misDatos);

$pdf->cabeceraHorizontal($miCabecera);
$pdf->datosHorizontal($misDatos);

$pdf->Output(); //Salida al navegador
?>

Y esta es la salida:

Cabeceras y datos, verticales y horizontales

Cabeceras y datos, verticales y horizontales

___________________________________________________________________________________________________

En la siguiente entrada les muestro cómo poner varios registros en las tablas horizontales, simulando un reporte. Digo simulando, porque lo mostraré estáticamente con un arreglo de arreglos, más adelante lo mostraré con una consulta SELECT a la base de datos 🙂

Siguiente —> Reporte estático

@huguidugui || ringhugos@gmail.com

Anuncios
 
3 comentarios

Publicado por en 21 noviembre, 2013 en FPDF, PHP

 

Etiquetas: ,

3 Respuestas a “FPDF: Cabeceras y Datos

  1. Joscelyn Guido

    8 abril, 2015 at 10:32

    excelente

     
  2. ivanolete

    19 mayo, 2015 at 17:44

    genial

     

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: