Ajuda com Relatório em FPDF em PHP
Amigos, primeiramente peço desculpa se postei na opção errada.
Preciso de uma ajuda dos amigos.
Estou montando um Relatório em FPDF, embora não domino muito essa função, se meu código parecer ingênuo aos amigos, peço desculpas.
Gostaria de repetir o mesmo Cabeçalho com o Title / Dados do cliente em todas as folhas do FPDP.
Anexei a imagem do Relatório e abaixo o código fonte que estou escrevendo. Lembro que todos os dados contido no Relatório são dados fictícios, apenas para teste.
Código fonte:
<?php
require('../fpdf/fpdf.php');
//Connect to your database
include_once("sistema/validar_user.php");
//Variável Passada da Página Anterior
$cotaNumeroGet = isset($_GET['cotaNumero']) ? $_GET['cotaNumero'] : false;
$cotaNumero = isset($_POST['cotaNumero']) ? $_POST['cotaNumero'] : $cotaNumeroGet;
$sql_pegaProd = "SELECT cl.clienteId, cl.razaoSocial,
ct.cotaId, ct.cotaNumero, ct.cotaDtInicio, ct.cotaHrsInicio, ct.cotaDtFim,
ct.cotaHrsFim, ct.cotaTitulo, ct.cotaStatus, ct.cotaObserva, ct.desc_pgto,
ct.clientes_clienteId
FROM clientes AS cl
INNER JOIN cotacao AS ct
ON cl.clienteId = ct.clientes_clienteId
WHERE cotaNumero = :cotaNumero";
try{
$query_pegaProd = $conecta->prepare($sql_pegaProd);
$query_pegaProd->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);
$query_pegaProd->execute();
$resultado_pegaProd = $query_pegaProd->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOexception $error_pegaProd){
echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage();
}
//Capturo os dados que desejo
foreach($resultado_pegaProd as $resProd){
$cotaId = $resProd['cotaId'];
$cotaNumero = $resProd['cotaNumero'];
$edCotaDtInicio = $resProd['cotaDtInicio'];
$edCotaHrsInicio = $resProd['cotaHrsInicio'];
$edCotaDtFim = $resProd['cotaDtFim'];
$edCotaHrsFim = $resProd['cotaHrsFim'];
$edCotaTitulo = $resProd['cotaTitulo'];
$cotaObserva = $resProd['cotaObserva'];
$cotaStatus = $resProd['cotaStatus'];
$desc_pgto = $resProd['desc_pgto'];
$clienteId = $resProd['clienteId'];
$razaoSocial = $resProd['razaoSocial'];
}
class PDF extends FPDF {
function Header(){
$this->Image('../componentes/dist/img/siscota.jpg',10,5,25);
$this->SetFont('Arial', '', 9);
$this->Cell(280, 5, 'Data: '.date('d/m/Y').'', 0,0,'R');
$this->Ln();
$this->SetFont('Arial','B',16);
$this->Cell(270,5,utf8_decode('RELAÇÃO DOS ITENS DA COTAÇÃO'),0,0,'C');
$this->Ln(15);
}
function layout($conecta){
//Variável Passada da Página Anterior
$cotaNumeroGet = isset($_GET['cotaNumero']) ? $_GET['cotaNumero'] : false;
$cotaNumero = isset($_POST['cotaNumero']) ? $_POST['cotaNumero'] : $cotaNumeroGet;
$sql_pegaProd = "SELECT cl.clienteId, cl.razaoSocial,
ct.cotaId, ct.cotaNumero, ct.cotaDtInicio, ct.cotaHrsInicio, ct.cotaDtFim,
ct.cotaHrsFim, ct.cotaTitulo, ct.cotaStatus, ct.cotaObserva, ct.desc_pgto,
ct.clientes_clienteId
FROM clientes AS cl
INNER JOIN cotacao AS ct
ON cl.clienteId = ct.clientes_clienteId
WHERE cotaNumero = :cotaNumero";
try{
$query_pegaProd = $conecta->prepare($sql_pegaProd);
$query_pegaProd->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);
$query_pegaProd->execute();
$resultado_pegaProd = $query_pegaProd->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOexception $error_pegaProd){
echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage();
}
//Capturo os dados que desejo
foreach($resultado_pegaProd as $resProd){
$cotaId = $resProd['cotaId'];
$cotaNumero = $resProd['cotaNumero'];
$edCotaDtInicio = $resProd['cotaDtInicio'];
$edCotaHrsInicio = $resProd['cotaHrsInicio'];
$edCotaDtFim = $resProd['cotaDtFim'];
$edCotaHrsFim = $resProd['cotaHrsFim'];
$edCotaTitulo = $resProd['cotaTitulo'];
$cotaObserva = $resProd['cotaObserva'];
$cotaStatus = $resProd['cotaStatus'];
$desc_pgto = $resProd['desc_pgto'];
$clienteId = $resProd['clienteId'];
$razaoSocial = $resProd['razaoSocial'];
}
$this->Ln(3);
$this->SetFont('Arial','',12);
$this->Cell(17,5,'Cliente:',0,0,'L');
$this->Cell(10,5,utf8_decode($razaoSocial),0,0,'L');
$this->SetFont('Arial','',12);
$this->Cell(365,5,utf8_decode('Cotação nº. ').$cotaNumero.'',0,0,'C');
$this->Ln(7);
$this->SetFont('Arial','',12);
$this->Cell(30,5,'Data Abertura:',0,0,'L');
$this->Cell(30,5,date('d-m-Y', strtotime($edCotaDtInicio)),0,0,'L');
$this->Cell(60,5,'Hora Abertura: '.date('H:i:s', strtotime($edCotaHrsInicio)).'',0,0,'L');
$this->Cell(70,5,'Data Encerramento: '.date('d-m-Y', strtotime($edCotaDtFim)).'',0,0,'L');
$this->Cell(30,5,'Hora Encerramento: '.date('H:i:s', strtotime($edCotaHrsFim)).'',0,0,'L');
$this->Ln(15);
}
// Page footer
function Footer(){
$this->SetY(-15);
$this->Cell(0,10,utf8_decode('RCT informática. SisCota - Web | Versão 1.0.0.'),0,0,'L');
$this->SetFont('Arial','B',12);
$this->Cell(0,10,$this->PageNo(),0,0,'R');
}
function headerTable(){
$this->SetFont('Times','B',12);
$this->Cell(23,10,utf8_decode('Código'),1,0,'C');
$this->Cell(95,10,utf8_decode('Descrição'),1,0,'C');
$this->Cell(17,10,'ESP',1,0,'C');
$this->Cell(25,10,'Qtde',1,0,'C');
$this->Cell(40,10,'Marca',1,0,'C');
$this->Cell(40,10,'Vr. Unit.',1,0,'C');
$this->Cell(40,10,'Vr. Total',1,0,'C');
$this->Ln();
}
function viewTable($conecta){
//Variável Passada da Página Anterior
$cotaNumeroGet = isset($_GET['cotaNumero']) ? $_GET['cotaNumero'] : false;
$cotaNumero = isset($_POST['cotaNumero']) ? $_POST['cotaNumero'] : $cotaNumeroGet;
$sql_pegaProd = "SELECT cl.clienteId, cl.razaoSocial,
ct.cotaId, ct.cotaNumero, ct.cotaDtInicio, ct.cotaHrsInicio, ct.cotaDtFim,
ct.cotaHrsFim, ct.cotaTitulo, ct.cotaStatus, ct.cotaObserva, ct.desc_pgto,
ct.clientes_clienteId
FROM clientes AS cl
INNER JOIN cotacao AS ct
ON cl.clienteId = ct.clientes_clienteId
WHERE cotaNumero = :cotaNumero";
try{
$query_pegaProd = $conecta->prepare($sql_pegaProd);
$query_pegaProd->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);
$query_pegaProd->execute();
$resultado_pegaProd = $query_pegaProd->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOexception $error_pegaProd){
echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage();
}
//Capturo os dados que desejo
foreach($resultado_pegaProd as $resProd){
$cotaId = $resProd['cotaId'];
$cotaNumero = $resProd['cotaNumero'];
$edCotaDtInicio = $resProd['cotaDtInicio'];
$edCotaHrsInicio = $resProd['cotaHrsInicio'];
$edCotaDtFim = $resProd['cotaDtFim'];
$edCotaHrsFim = $resProd['cotaHrsFim'];
$edCotaTitulo = $resProd['cotaTitulo'];
$cotaObserva = $resProd['cotaObserva'];
$cotaStatus = $resProd['cotaStatus'];
$desc_pgto = $resProd['desc_pgto'];
$clienteId = $resProd['clienteId'];
$razaoSocial = $resProd['razaoSocial'];
}
//CONSULTA
$productos = "SELECT pro.codProdClie, pro.produtoDescr, pro.apres_unid,
pro.clientes_clienteId,
cota.cotaItensId, cota.cotaNumImport, cota.cotaNumero,
cota.cotaQtde, cota.cotaComenta, cota.cotacao_cotaId, cota.cotaReferencia
FROM cotacaoItens cota
INNER JOIN produto pro ON pro.codProdClie = cota.codProdClie
WHERE pro.clientes_clienteId = :clientes_clienteId
AND cota.cotaNumero = :cotaNumero
ORDER BY cota.cotaItensId ASC";
try{
$query_pegaAtivos = $conecta->prepare($productos);
$query_pegaAtivos->bindValue(':clientes_clienteId',$clienteId,PDO::PARAM_STR);
$query_pegaAtivos->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);
$query_pegaAtivos->execute();
$resultado_pegaAtivos = $query_pegaAtivos->fetchAll(PDO::FETCH_ASSOC);
$count_pegaAtivos = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC);
}catch(PDOexception $error_pegaAtivos){
echo 'Erro ao pegar ativos';
}
foreach($resultado_pegaAtivos as $productos2){
$this->SetFont('Arial','',8);
$this->Cell(23,10,$productos2['codProdClie'],1,0,'C');
$this->Cell(95,10,utf8_decode($productos2['produtoDescr']),1,0,'L');
$this->Cell(17,10,$productos2['apres_unid'],1,0,'C');
$this->Cell(25,10,$productos2['cotaQtde'],1,0,'C');
$this->Cell(40,10,'',1,0,'C');
$this->Cell(40,10,'',1,0,'C');
$this->Cell(40,10,'',1,0,'C');
$this->Ln();
}
}
}
// Instanciation of inherited class
$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage('L','A4',0);
$pdf->layout($conecta);
$pdf->headerTable();
$pdf->viewTable($conecta);
$pdf->Output();
?>
Grato,
RenatoDiscussão (0)
Carregando comentários...