Saudações,
Estou utilizando como referência o CRUD 1.5, para estudos. Estou precisando gerar um relatório entre duas datas. Como solucionar o problema?
Código utilizado:
<?php $sql = "select * from agenda where dataagendamento BETWEEN "; $parametros=array(); if( $_REQUEST['dtinicio'] ) { $sql.=' = ?'; $parametros[] = $_REQUEST['dtinicio']; } if( $_REQUEST['dtfinal'] ) { $sql.=" and ?"; // para pesquisar pela marca em caixa alta e baixa e em qualquer posição $parametros[] = $_REQUEST['dtfinal']); } echo $sql; $dados = TPDOConnection::executeSql($sql,$parametros); if( !$dados ) { echo '<h3><center>Nenhum agendamento no periodo!</center></h3>'; die(); } $pdf = new TPDF('L'); // a classe TPDF procura pela função cabecalho() e se existir será executada recebendo a instância da classe TPDF function cabecalho($pdf) { $pdf->setFont('','B',14); $pdf->cell(0,5,'TÍTULO XXXXX',0,1,'C'); $pdf->setFont('','B',12); $pdf->cell(0,5,'Listagem ',0,1,'C'); $pdf->ln(1); $pdf->setFont('','',10); $criterio = ''; if( $_REQUEST['status_idstatus'] ) { $criterio = 'status_idstatus = '.$_REQUEST['status_idstatus']; } // TRATAMENTO DA CHAVE ESTRANGEIRA $criterio = ( ($criterio=='') ? 'Todos os agendamentos' : $criterio ); $criterio = ( ($criterio=='status_idstatus = 1') ? 'Atendidos' : $criterio ); $criterio = ( ($criterio=='status_idstatus = 2') ? 'Não atendidos' : $criterio ); $criterio = ( ($criterio=='status_idstatus = 3') ? 'Cancelados' : $criterio ); $criterio = ( ($criterio=='status_idstatus = 4') ? 'Retorno em outra data' : $criterio ); $criterio = ( ($criterio=='status_idstatus = 2') ? 'Agendados' : $criterio ); $pdf->cell(0,5,'Critério de consulta: '.$criterio,0,1,'L'); $pdf->ln(1); } function rodape($pdf) { $pdf->setY($pdf->h-10); $pdf->cell(50,5,'Emissão: '.date('d/m/Y h:i:s') ,'T',0,'L'); $pdf->cell(0,5,'Página: '.$pdf->PageNo().' de {nb}' ,'T',0,'C'); } $pdf->setData($dados); $pdf->addColumn('Solicitante' ,80,'L', 'NOME' ,'white','B',8,'black' ,'times'); $pdf->addColumn('Nº Telefone' ,18,'L', 'TELEFONE' ,'white',null,8,'black' ,'arial'); $pdf->addColumn('Nº Celular' ,18,'L', 'CELULAR' ,'white',null,8,'black' ,'arial'); $pdf->addColumn('Descrição do assunto' ,60,'L', 'ASSUNTO' ,'white',null,8,'black' ,'arial'); $pdf->addColumn('Observação' ,60,'L', 'OBSERVACAO' ,'white',null,8,'black' ,'arial'); $pdf->addColumn('Data Agendamento' ,20,'C', 'DATAAGENDAMENTO' ,'white',null,8,'black' ,'arial'); $pdf->addColumn('Data Atendimento' ,20,'C', 'DATAATENDIMENTO' ,'white',null,8,'black' ,'arial'); $pdf->printRows(); $pdf->show();
?>
Desde já agradeço
Autor: Rogério Alexandre Leite PEREIRA
1Um comentário
$where = array();
$parametros=array();
if( $_REQUEST['dtinicio'] )
{
$where[] = 'dataagendamento >= ?';
$parametros[] = $_REQUEST['dtinicio'];
} if( $_REQUEST['dtfinal'] )
{
$where[] = "dataagendamento <= ?"; // para pesquisar pela marca em caixa alta e baixa e em qualquer posição
$parametros[] = $_REQUEST['dtfinal'];
}
if( count($where) > 0 )
{
$sql .= ' where '.implode(' and ',$where);
} Abraço.