Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago Santarém

gerar relatorio pdf

Recommended Posts

Bom dia Tiago, para ficar melhor, pode ser mais específico no que tu tem dúvida, por que assim esta muito vago, dai o pessoal não consegue ajudar.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

require_once "configurar/Conexao.php";

require_once "../conect/mysqlexecuta.php";

require_once "mpdf60/mpdf.php";


class reportAluno extends mpdf{


// Atributos da classe

private $pdo = null;

private $pdf = null;

private $css = null;

private $titulo = null;


/*

* Construtor da classe

* @param $css - Arquivo CSS

* @param $titulo - Título do relatório

*/

public function __construct($css, $titulo) {

$this->pdo = Conexao::getInstance();

$this->titulo = $titulo;

$this->setarCSS($css);

}


/*

* Método para setar o conteúdo do arquivo CSS para o atributo css

* @param $file - Caminho para arquivo CSS

*/

public function setarCSS($file){

if (file_exists($file)):

$this->css = file_get_contents($file);

else:

echo 'Arquivo inexistente!';

endif;

}


/*

* Método para montar o Cabeçalho do relatório em PDF

*/

protected function getHeader(){

$data = date('j/m/Y');

$retorno = "<table class=\"tbl_header\" width=\"1000\">

<tr>

<td align=\"left\"> SISRENOV Aluno PDF</td>

<td align=\"right\">Gerado em: $data</td>

</tr>

</table>";

return $retorno;

}


/*

* Método para montar o Rodapé do relatório em PDF

*/

protected function getFooter(){

$retorno = "<table class=\"tbl_footer\" width=\"1000\">

<tr>

<td align=\"left\"><a href=''>tsantarem3@gmail.com</a></td>

<td align=\"right\">Página: {PAGENO}</td>

</tr>

</table>";

return $retorno;

}


/*

* Método para construir a tabela em HTML com todos os dados

* Esse método também gera o conteúdo para o arquivo PDF

*/

private function getTabela(){

$color = false;

$retorno = "";


$retorno .= "<h2 style=\"text-align:center\">{$this->titulo}</h2>";

$retorno .= "<table border='1' width='1000' align='center'>

<tr class='header'>

<th>Nome</td>

<th>E-mail</td>

<th>Matricula</td>

<th>Ano Igresso</td>

<th>Período Atual</td>

<th>Período Seguinte</td>

<th>Curso</td>

<th>Turno</td>

</tr>";



$sql = "SELECT * FROM aluno";

foreach ($this->pdo->query($sql) as $reg):

$retorno .= ($color) ? "<tr>" : "<tr>";

$retorno .= "<td align='center'>{$reg['nomeCompleto']}</td>";

$retorno .= "<td align='center'>{$reg['email']}</td>";

$retorno .= "<td align='center'>{$reg['matricula']}</td>";

$retorno .= "<td align='center'>{$reg['anoIgresso']}</td>";

$retorno .= "<td align='center'>{$reg['periodoAtual']}</td>";

$retorno .= "<td align='center'>{$reg['periodoSeguinte']}</td>";

$retorno .= "<td align='center'>{$reg['curso']}</td>";

$retorno .= "<td align='center'>{$reg['turno']}</td>";


$retorno .= "<tr>";

$color = !$color;

endforeach;


$retorno .= "</table>

";

return $retorno;

}


/*

* Método para construir o arquivo PDF

*/

public function BuildPDF(){

$this->pdf = new mPDF('utf-8', 'A4-L');

$this->pdf->WriteHTML($this->css, 1);

$this->pdf->SetHTMLHeader($this->getHeader());

$this->pdf->SetHTMLFooter($this->getFooter());

$this->pdf->WriteHTML($this->getTabela());

}


/*

* Método para exibir o arquivo PDF

* @param $name - Nome do arquivo se necessário grava-lo

*/

public function Exibir($name = null) {

$this->pdf->Output($name, 'I');

}

}




assim esta pegando de uma unica tabela do banco quero pegar de mais de 2 a 4 tabelas e mostra tudo em unico arquivo pdf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caras estou com essa mesma duvida, como faço pra gerar o conteudo do pdf, puxando do banco de dados, existe mil maneiras, mas não entendi quase nada e sempre mostra o mesmo erro, porque eu já tenho uma conxao do banco, eu teria que criar outra conexao pra passar pro pdf?

O meu projeto é Orientado, então não sei, mas ta complicado

Compartilhar este post


Link para o post
Compartilhar em outros sites

gerar PDF com mpdf em php de duas tabelas ou mais como faço isso ?

Use Joins

 

Caras estou com essa mesma duvida, como faço pra gerar o conteudo do pdf, puxando do banco de dados, existe mil maneiras, mas não entendi quase nada e sempre mostra o mesmo erro, porque eu já tenho uma conxao do banco, eu teria que criar outra conexao pra passar pro pdf?

O meu projeto é Orientado, então não sei, mas ta complicado

Não e necessário outra conexão, só precisa enviar o buffer

 

 

/*
* Método para construir a tabela em HTML com todos os dados
* Esse método também gera o conteúdo para o arquivo PDF
*/
private function getTabela(){
$color = false;
$retorno = "";
$retorno .= "<h2 style=\"text-align:center\">{$this->titulo}</h2>";
$retorno .= "<table border='1' width='1000' align='center'>
<tr class='header'>
<th>Nome</td>
<th>E-mail</td>
<th>Matricula</td>
<th>Ano Igresso</td>
<th>Período Atual</td>
<th>Período Seguinte</td>
<th>Curso</td>
<th>Turno</td>
</tr>";
$sql = "SELECT * FROM aluno";
foreach ($this->pdo->query($sql) as $reg):
$retorno .= ($color) ? "<tr>" : "<tr>";
$retorno .= "<td align='center'>{$reg['nomeCompleto']}</td>";
$retorno .= "<td align='center'>{$reg['email']}</td>";
$retorno .= "<td align='center'>{$reg['matricula']}</td>";
$retorno .= "<td align='center'>{$reg['anoIgresso']}</td>";
$retorno .= "<td align='center'>{$reg['periodoAtual']}</td>";
$retorno .= "<td align='center'>{$reg['periodoSeguinte']}</td>";
$retorno .= "<td align='center'>{$reg['curso']}</td>";
$retorno .= "<td align='center'>{$reg['turno']}</td>";
$retorno .= "<tr>";
$color = !$color;
endforeach;
$retorno .= "</table>
";
return $retorno;
}

Separe suas consultas ao bando de dados do HTML , dessa forma ainda é procedural!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.