Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos estou com um sistema onde faço uma consulta no mysql utilizando alguns filtros e o resultado desta consulta é exibida na página em uma grid.
Como faço para imprimir esse resultado usando o fpdf?
Abraços
Já passei por lá e infelizmente não encontrei a solução pro meu problema. :(
Acabei de tentar praticamente todas as dicas do link acima e não obtive exito!
Alguém pode me ajudar? :)
Vou postar o código da página e assim fica mais fácil para vocês me ajudarem.
listar.php
<?php
session_start();
if (!isset($_SESSION["login"]) || !isset($_SESSION["senha"]) || !isset($_SESSION["empresas_idempresas"]) || ($_SESSION["nivel"] <> 2))
{
header("location: ../../../expira.php"); exit;}
function timestamp_para_mysql_date($ts) {
$d=getdate($ts);
$yr=$d["year"];
$mo=$d["mon"];
$da=$d["mday"];
return sprintf("%04d-%02d-%02d",$yr,$mo,$da);
}
function mysql_cvdate($s) {
return timestamp_para_mysql_date(cvdate($s));
}
function cvdate($s) {
$delimiter='';
$s = str_replace(' de ','/',strtolower($s));
if (strpos($s,'-')>0) $delimiter='-';
elseif (strpos($s,'/')>0) $delimiter='/';
elseif (strpos($s,' ')>0) $delimiter=' ';
elseif (strpos($s,'.')>0) $delimiter='.';
$s = str_replace(', ',$delimiter,$s);
if (empty($delimiter)) return 0;
$p1=strpos($s,$delimiter);
$p2=strpos($s,$delimiter,$p1+1);
$a=substr($s,$p2+1);
$m=substr($s,$p1+1,$p2-($p1+1));
$d=substr($s,0,$p1);
if (intval($a)<100)
{
$a=(intval($a)>69)? strval(1900+intval($a)) : strval(2000+intval($a));
}
if (intval($m)==0) // contém mês em extenso
{
return cvdate_portugues($d,$m,$a);
}else{
return cvdate_numerico($d,$m,$a);
}
}
function cvdate_portugues($d,$m,$y) {
$d2=0; $m2=0; $y2=0;
$d2=intval($d);
$m=strtolower($m);
switch(substr($m,0,3)) {
case 'jan': $m2=1; break;
case 'fev': $m2=2; break;
case 'mar': $m2=3; break;
case 'abr': $m2=4; break;
case 'mai': $m2=5; break;
case 'jun': $m2=6; break;
case 'jul': $m2=7; break;
case 'ago': $m2=8; break;
case 'set': $m2=9; break;
case 'out': $m2=10; break;
case 'nov': $m2=11; break;
case 'dez': $m2=12; break;
}
$y2=intval($y);
if (($d2==0)||($m2==0)||($y2==0)) return 0;
return mktime(0,0,0,$m2,$d2,$y2);
}
function cvdate_numerico($d,$m,$y) {
$d2=0; $m2=0; $y2=0;
$d2=intval($d);
$m2=intval($m);
$y2=intval($y);
if (($d2==0)||($m2==0)||($y2==0)) return 0;
return mktime(0,0,0,$m2,$d2,$y2);
}
$datamysql1 = mysql_cvdate("$datainicial");
$datamysql2 = mysql_cvdate("$datafinal");
$con = mysql_pconnect('localhost','user','senha');
mysql_select_db('banco');
$num_por_pagina = 20;
if (!$pagina) {
$pagina = 1;
}
$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;
if($nomecliente == "Nomecliente")
$nomecliente = "";
if($nomefantasia == "Nomefantasia")
$nomefantasia = "";
if($telefone == "Telefone")
$telefone = "";
if($logradouro == "Logradouro")
$logradouro = "";
if($cpf == "Cpf")
$cpf = "";
if($cnpj == "Cnpj")
$cnpj = "";
if($cidade == "Cidade")
$cidade = "";
if($bairro == "Bairro")
$bairro = "";
if ($nomecliente)
$filtro1 = "and nomecliente like '%$nomecliente%'";
if ($nomefantasia)
$filtro2 = "and nomefantasia like '%$nomefantasia%'";
if ($logradouro)
$filtro3 = "and logradouro like '%$logradouro%'";
if ($datainicial and $datafinal)
$filtro4 = "and datacadastro BETWEEN '$datamysql1' AND '$datamysql2'";
if ($cpf)
$filtro5 = "and cpf like '%$cpf%'";
if ($cnpj)
$filtro6 = "and cnpj like '%$cnpj%'";
if ($telefone)
$filtro7 = "and telefone like '%$telefone%'";
if ($cidade)
$filtro7 = "and cidade like '%$cidade%'";
if ($bairro)
$filtro7 = "and bairro like '%$bairro%'";
$consulta = "SELECT idclientes, nomecliente, logradouro, numero, bairro, cidade, uf, cpf, cnpj FROM clientes WHERE empresas_idempresas = $empresas_idempresas $filtro1 $filtro2 $filtro3 $filtro4 $filtro5 $filtro6 $filtro7 ORDER BY idclientes DESC LIMIT $primeiro_registro, $num_por_pagina";
$res = mysql_query($consulta,$con);
?>
<style type="text/css">
.gridconsulta {
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
font-size: 11px;
font-weight: normal;
font-variant: normal;
color: #333;
}
.gridfiltro {
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
font-size: 11px;
font-weight: normal;
font-variant: normal;
color: #333;
width:150px;
}
</style>
<script type="text/javascript">
function mascara(e,src,mask) {
if(window.event) {
_TXT = e.keyCode;
} else
if(e.which) {
_TXT = e.which;
}
if(_TXT > 47 && _TXT < 58) {
var i = src.value.length;
var saida = mask.substring(0,1);
var texto = mask.substring(i);
if(texto.substring(0,1) != saida) {
src.value += texto.substring(0,1);
}
return true;
} else {
if (_TXT != 8) {
return false;
} else {
return true;
}
}
}
</script>
<td align="center"><div align="left"><? include "../../../top.php"; ?>
<title>Consulta de Clientes</title>
<p> </p></td>
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th align="left" scope="col"><span class="gridbold1">Consulta de Clientes</span></th>
</tr>
<tr>
<th align="left" scope="col"> </th>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td align="left"><form name="buscaperiodo" action= "listar.php" method="post" >
<table width="800" border="0" cellpadding="3" cellspacing="0" >
<tr>
<td width="144" align="left" class="gridfiltro">Nome/Razão Social</td>
<td width="644" align="left"><input name="nomecliente" type="text" class="campo_os" id="cliente" size="20" style="margin-right:10px;" /></td>
</tr>
<tr>
<td align="left" class="gridfiltro">Nome Fantasia</td>
<td align="left"><input name="nomefantasia" type="text" class="campocnpj" id="fantasia" size="20" style="margin-right:10px;" /></td>
</tr>
<tr>
<td align="left" class="gridfiltro">Telefone</td>
<td align="left"><input name="telefone" type="text" class="grid" id="telefone" size="20" style="margin-right:10px;" onkeypress="return mascara(event,this,'## ####-####');" maxlength="12" /></td>
</tr>
<tr>
<td align="left" class="gridfiltro">Endereço</td>
<td align="left" valign="middle"><input name="logradouro" type="text" class="campo" id="logradouro" size="20" style="margin-right:10px;" /><span class="gridfiltro">Bairro <input name="bairro" type="text" class="campocnpj" id="bairro" size="20" style="margin-right:10px;" />Cidade <input name="cidade" type="text" class="campocnpj" id="cidade" size="20" style="margin-right:10px;" />
</span></td>
</tr>
<tr>
<td align="left" class="gridfiltro">CPF</td>
<td align="left"><input name="cpf" type="text" class="grid" id="cpf" size="20" style="margin-right:10px;" onkeypress="return mascara(event,this,'###.###.###-##');" maxlength="14" /></td>
</tr>
<tr>
<td align="left" class="gridfiltro">CNPJ</td>
<td align="left"><input name="cnpj" type="text" class="campocnpj" id="cnpj" size="20" style="margin-right:10px;" onkeypress="return mascara(event,this,'##.###.####/####-##');" maxlength="19" /></td>
</tr>
<tr>
<td align="left"><span class="gridfiltro">Data de Cadastro</span></td>
<td align="left" valign="bottom"><div id="divDataPagamento" >
<script src="../../../calendario.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../../../calendario.css"/>
<script type="text/javascript" id="js1">
var now = new Date();
var cal8 = new CalendarPopup("divCalendario");
cal8.offsetX = -152;
cal8.offsetY = 25;
cal8.setCssPrefix("BBCAL");
</script>
<script type="text/javascript" id="js1">
var now = new Date();
var cal9 = new CalendarPopup("divCalendario9");
cal9.offsetX = -152;
cal9.offsetY = 25;
cal9.setCssPrefix("BBCAL");
</script>
<input alt="Informe a data no formato DDMMAAAA." type="text" name="datainicial" title="Informe a data no formato DDMMAAAA." size="11" tabindex="8" maxlength="10" onkeyup="formataData(this);" class="valor" value="<?=$datainicial?>" />
<a href="#" onclick="cal8.select(document.forms.buscaperiodo.datainicial,'anchor8','dd/MM/yyyy'); return false;" title="Calendário" name="anchor8" id="anchor8"> <img src="../../../iconeCalendario.gif" alt="" width="15" height="15" border="0" align="bottom" /></a> <strong class="gridfiltro">até</strong>
<input alt="Informe a data no formato DDMMAAAA." type="text" name="datafinal" title="Informe a data no formato DDMMAAAA." size="11" tabindex="8" maxlength="10" onkeyup="formataData(this);" class="valor" value="<?=$datafinal?>" />
<a href="#" onclick="cal9.select(document.forms.buscaperiodo.datafinal,'anchor9','dd/MM/yyyy'); return false;" title="Calendário" name="anchor9" id="anchor9"> <img src="../../../iconeCalendario.gif" alt="" width="15" height="15" border="0" align="bottom" /></a></div></td>
</tr>
<tr>
<td colspan="2" align="left" valign="bottom"><table width="264" border="0" cellpadding="0" cellspacing="0">
<tr>
<th width="69" align="left" valign="bottom" scope="col"><input name="Busca" class="grid" type="submit" id="Busca" value="Consultar" style="font-family:Verdana, Geneva, sans-serif; font-size:10px" /></th>
<th width="63" align="left" valign="bottom" scope="col"><a href="cadastrar.php" style="border:none; text-decoration:none;">
<input name="button3" type="reset" value="Novo Cliente" style="font-family:Verdana, Geneva, sans-serif; font-size:10px" />
</a></th>
<th width="132" align="left" valign="bottom" scope="col"><input name="button" type="reset" value="Imprimir" onclick="window.print()" style="font-family:Verdana, Geneva, sans-serif; font-size:10px" /></th>
</tr>
</table></td>
</tr>
</table>
</form><div id="divCalendario" STYLE="position:absolute;visibility:hidden;background-color:white;"></div><div id="divCalendario9" STYLE="position:absolute;visibility:hidden;background-color:white;"></div></td>
</tr>
<tr>
<td height="10"> </td>
</tr>
</table>
[color="#FF0000"]//* AQUI COMEÇA A PARTE A SER IMPRESSA NO PDF //[/color]
<table width="900" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000" class="bordasimples">
<tr>
<td width="300" height="25" class="titulogrid" ><div align="left" class="tabelas"><strong> Nome/Razão Social</strong></div></td>
<td width="353" class="titulogrid"><div align="left" class="tabelas"><strong> Endereço</strong></div></td>
<td width="190" class="titulogrid"><div align="left" class="tabelas"><strong> CPF/CNPJ</strong></div></td>
<td width="47" colspan="2" align="center" valign="middle" class="titulogrid"><div align="center" class="tabelas"><strong>Ações</strong></div></td>
</tr>
<?php
while (list($idclientes, $nomecliente, $logradouro, $numero, $bairro, $cidade, $uf, $cpf, $cnpj) = mysql_fetch_array($res)) {
echo "
<tr>
<td height='23px' style='font-family:Lucida Sans Unicode, Lucida Grande, sans-serif; font-size:11px;'><font class=grid> $nomecliente</td>
<td height='23px' style='font-family:Lucida Sans Unicode, Lucida Grande, sans-serif; font-size:11px;'><font class=grid> $logradouro, $numero - $bairro - $cidade/$uf</td>
<td height='23px' style='font-family:Lucida Sans Unicode, Lucida Grande, sans-serif; font-size:11px;'><font class=grid> $cpf $cnpj</td>
<td><div align=center valign=top><a href=\"editar.php?idclientes=$idclientes\" title='Editar'><img src=\"../../../imagens/icone_editar.gif\" border='0' /></a></td> <td><div align=center valign=top><a href=\"excluir.php?idclientes=$idclientes\" title='Excluir'><img src=\"../../../imagens/icone_excluir.gif\" border='0' /></a></div></td>
</tr>\n";
}
@mysql_close();
?> [color="#FF0000"]//* ATÉ AQUI DEVE SER IMPRESSO NO PDF //[/color]
</table>
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th align="left" scope="col" class="gridconsulta"><?
$consulta = "SELECT COUNT(*) FROM clientes";
list($total_usuarios) = mysql_fetch_array(mysql_query($consulta,$con));
$total_paginas = $total_usuarios/$num_por_pagina;
$prev = $pagina - 1;
$next = $pagina + 1;
if ($pagina > 1) {
$prev_link = "<a class='gridconsulta' href=\"$PHP_SELF?pagina=$prev\">Anterior</a>";
} else {
$prev_link = "<a class='gridconsulta'>Anterior<a>";
}
if ($total_paginas > $pagina) {
$next_link = "<a class='gridconsulta' href=\"$PHP_SELF?pagina=$next\">Próxima</a>";
} else {
$next_link = "<a class='gridconsulta'>Próxima<a>";
}
$total_paginas = ceil($total_paginas);
$painel = "";
for ($x=1; $x<=$total_paginas; $x++) {
if ($x==$pagina) {
$painel .= "<a class='gridconsulta'>$x,<a>";
} else {
$painel .= " <a class='gridconsulta' href=\"$PHP_SELF?pagina=$x\">$x,</a>";
}
}
echo "$prev_link $painel $next_link";
?></th>
</tr>
</table>
<tr>
<th scope="col">
<table width="900" align="center">
</table>
</th>
</tr>
<p> </p>
<div align="center">
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th height="80" scope="col"><? include "../../../footer.php"; ?></th>
</tr>
</table>
</div>
<p> </p>
</html>
Estou usando a classe FPDF e ficarei eternamente agradecido se alguém puder me ajudar.
da um olhada nos tutoriais http://www.fpdf.org/