Salto de pagina reporte fpdf Hola que tal, tengo un problema cuando genero un reporte con fpdf cuando la consulta genera mas de 18 filas al realizar la consula la tabla que contiene los datos se desordena completamente.
El codigo que itulizo es: Código PHP: //conexion
$mysqli = new mysqli("127.0.0.1", "root", "root1234", "hogar_infantil");
if ($mysqli->connect_errno) {
echo "Fallo al conectar a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
Código PHP: //consulta
$mes = $mysqli->query("SELECT alu_cargo.aul_id, nin_nino.nin_nombren, nin_nino.nin_apellidos, gru_grupo.gru_nombre, alu_cargo.alu_descripcion, alu_cargo.alu_fecha, alu_cargo.alu_valor, login.nombre FROM alu_cargo INNER JOIN nin_nino ON nin_nino.nui = alu_cargo.nui INNER JOIN gru_grupo ON gru_grupo.gru_id = nin_nino.gru_id INNER JOIN login ON login.id_usuario = alu_cargo.id_usuario WHERE alu_cargo.alu_tipo = '".$alutipo."' ORDER BY nin_nino.nin_nombren LIMIT 18");
if ( $mes->num_rows == 0){
echo "<script type=\"text/javascript\">alert('No hay movimientos registrados'); window.location='/hogar/index.php';</script>";
}
Código PHP: //pdf
$column_idpago = '';
$column_nombre = '';
$column_grupo = '';
$column_descripcion = '';
$column_fecha = '';
$column_valor = '';
$column_usuario = '';
while ($row = $mes->fetch_assoc()) {
$encontrados = $mes->num_rows;
$idp = $row['aul_id'];
$nombre = $row['nin_nombren'].' '.$row['nin_apellidos'];
$grupo = $row['gru_nombre'];
$descripcion = $row['alu_descripcion'];
$fecha = $row['alu_fecha'];
$valor = $row['alu_valor'];
$usuario = substr($row['nombre'],0, 14);
$column_idpago = $column_idpago.$idp."\n";
$column_nombre = $column_nombre.$nombre."\n";
$column_grupo = $column_grupo.$grupo."\n";
$column_descripcion = $column_descripcion.$descripcion."\n";
$column_fecha = $column_fecha.$fecha."\n";
$column_valor= $column_valor.$valor."\n";
$column_usuario = $column_usuario.$usuario."\n";
}
class PDF extends FPDF
{
function Header(){
// Logo
$this->Image('../../img/footleo.png',10,4,33);
// Arial bold 15
$this->SetFont('Arial','B',15);
// Movernos a la derecha
$this->Cell(80);
// Título
$this->Cell(125,10,'REPORTE DE MOVIMIENTOS HOGAR LEONIA',0,0,'C');
// Salto de línea
$this->Ln(20);
}
function Footer(){
// Posición: a 1,5 cm del final
$this->SetY(-15);
// Arial italic 8
$this->SetFont('Arial','',5);
// Número de página
$this->Image('../../img/foot.png',10,197,18,9);
$this->Cell(0, 20,'Page '.$this->PageNo(),0,0,'R');
}
}// FIN Class PDF
if ($encontrados > 0) {
$pdf = new PDF('L', 'mm', 'A4');
$pdf->AddPage();
$pdf->SetFont('Arial', '', 9);
$Y_Table_Position = 38;
$pdf->SetDrawColor(255, 255, 255);
$pdf->SetFillColor(185, 201, 254);
$pdf->Rect(10, 30, 20, 8, 'F');
$pdf->SetXY(10, 30);
$pdf->Cell(20, 8, 'Id pago', 'LTR',0, 'C', 0, 1);
$pdf->SetFillColor(185, 201, 254);
$pdf->Rect(30, 30, 90, 8, 'F');
$pdf->SetXY(30, 30);
$pdf->Cell(90, 8, 'Nombre', 'LTR',0, 'C', 0, 1);
$pdf->SetFillColor(185, 201, 254);
$pdf->Rect(120, 30, 35, 8, 'F');
$pdf->SetXY(120, 30);
$pdf->Cell(35, 8, 'Grupo', 'LTR',0, 'C', 0, 1);
$pdf->SetFillColor(185, 201, 254);
$pdf->Rect(155, 30, 55, 8, 'F');
$pdf->SetXY(155, 30);
$pdf->Cell(55, 8, 'Descripción', 'LTR',0, 'C', 0, 1);
$pdf->SetFillColor(185, 201, 254);
$pdf->Rect(210, 30, 27, 8, 'F');
$pdf->SetXY(210, 30);
$pdf->Cell(27, 8, 'Fecha de pago', 'LTR',0, 'C', 0, 1);
$pdf->SetFillColor(185, 201, 254);
$pdf->Rect(237, 30, 25, 8, 'F');
$pdf->SetXY(237, 30);
$pdf->Cell(25, 8, 'Valor', 'LTR',0, 'C', 0, 1);
$pdf->SetFillColor(185, 201, 254);
$pdf->Rect(262, 30, 27, 8, 'F');
$pdf->SetXY(262, 30);
$pdf->Cell(27, 8, 'Usuario', 'LTR',0, 'C', 0, 1);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(10);
$pdf->SetFillColor(232, 237, 255);
$pdf->MultiCell(20, 8,$column_idpago,1, 'R', 'true');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(30);
$pdf->SetFillColor(232, 237, 255);
$pdf->MultiCell(90, 8,$column_nombre,1, 'L', 'true');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(120);
$pdf->SetFillColor(232, 237, 255);
$pdf->MultiCell(35, 8,$column_grupo,1, 'L', 'true');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(155);
$pdf->SetFillColor(232, 237, 255);
$pdf->MultiCell(55, 8,$column_descripcion,1, 'L', 'true');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(210);
$pdf->SetFillColor(232, 237, 255);
$pdf->MultiCell(27, 8,$column_fecha,1, 'R', 'true');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(237);
$pdf->SetFillColor(232, 237, 255);
$pdf->MultiCell(25, 8,$column_valor,1, 'R', 'true');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(262);
$pdf->SetFillColor(232, 237, 255);
$pdf->MultiCell(27, 8,$column_usuario,1, 'L', 'true');
$pdf->SetY($Y_Table_Position);
$i = 0;
$pdf->SetY($Y_Table_Position);
while ($i < $encontrados){
$pdf->SetX(10);
$pdf->MultiCell(279, 8,'',1);
$i = $i +1;
}
$pdf->Output('D', 'Informe'.$fino.'.pdf'); //Salida al navegador
}
Asi sale con 18 o menos filas
Asi sale con mas de 18 filas
y asi sucesivamente.
la verdad ya no se me ocurre nada para poder mitigar este problema, cualquier ayuda es bienvenida. Muchas gracias
PD: perdon por las capturas un poco improvisadas, el teclado me empezo a fallar justo a mitad de la noche |