Pesquisa de dados em um intervalo de datas pelo MySQL
Passo 04 - Agora irems usar uma função que achei na internet. Por favor mantenha os créditos do desenvolvedor. Apenas copie e crie o arquivo com o nome de excelwriter.ini.php
PRONTO! esta pronto aqui nosso sistema de pesquisa com geração dos resultados em um relatorio criado em formato .xls (excel).
Entendimento dos campos da tabela:
Como você pode notar, na tabela "dados" existe um campo "ativo", criei ele com a finalidade de deixar com que você possa controlar os registros em status de ativo, caso, o valor deste seja 1 --> ou deixar o registro inativo caso o valor seja 0. Para tanto o tipo desse campo é INT de tamanho 1.
Ex.: de uso --> suponhamos que na tabela dados você tenha os seguintes registros:
id: 1
data: 1984-11-03
ativo: 1
nome: Angelo Lefundes
email: comercial@angelolefundes.com.br
cpf: 03210595224
e
id: 3
data: 1984-11-13
ativo: 0
nome: Geliane Souza
email: gege@hotmail.com
cpf: 12345678910
entendendo o resto...
temos 1 registro ATIVO com valor = 1 E 1 registro INATIVO com valor = 0
caso você queira que nos relatorios da pesquisa imprima somente os registros ATIVOS -->> você vai ter que adionar na query $consulta da pagina gera.php um where ativo = '1'
Ficando assim:
Lembrando que deixei como padrão o valor "0" do campo "ativo" na tabela.
"0" -> inativo, ou seja -> todos os registros cadastrados inicialmente vão estar inativos. Ai você vai criar um admin do sistema onde através de um radio button você possa escolher o status do registro, e poder altera-lo para "ativo" ou "inativo" -> exibir ou não exibir: entendeu?
Uma observação importante:
N página index.php, onde tem o formulário, no campo onde vai digitar o nome do arquivo a ser gerado do relatório terá q ser escrito no formato: nome_do_seu_arquivo.xls -> não esquecer de colocar .xls!!!
ex.: relatorio_10-01-2009.xls
Dúvidas envie um comentario abaixo.
<?php /* ############################################### #### #### #### Author : Harish Chauhan #### #### Date : 31 Dec,2004 #### #### Updated: #### #### #### ############################################### */ /* * Class is used for save the data into microsoft excel format. * It takes data into array or you can write data column vise. */ Class ExcelWriter{ var $fp=null; var $error; var $state="CLOSED"; var $newRow=false; /* * @Params : $file : file name of excel file to be created. * @Return : On Success Valid File Pointer to file * On Failure return false */ function ExcelWriter($file="",$bsc="CELLPAR"){ return $this->open($file); } /* * @Params : $file : file name of excel file to be created. * if you are using file name with directory i.e. test/myFile.xls * then the directory must be existed on the system and have permissioned properly * to write the file. * @Return : On Success Valid File Pointer to file * On Failure return false */ function open($file){ if($this->state!="CLOSED"){ $this->error="Error : Another file is opend .Close it to save the file"; return false; } if(!empty($file)){ $this->fp=@fopen($file,"w+"); }else{ $this->error="Usage : New ExcelWriter('fileName')"; return false; } if($this->fp==false){ $this->error="Error: Unable to open/create File.You may not have permmsion to write the file."; return false; } $this->state="OPENED"; fwrite($this->fp,$this->GetHeader()); return $this->fp; } function close(){ if($this->state!="OPENED"){ $this->error="Error : Please open the file."; return false; } if($this->newRow){ fwrite($this->fp,"</tr>"); $this->newRow=false; } fwrite($this->fp,$this->GetFooter()); fclose($this->fp); $this->state="CLOSED"; return; } /* @Params : Void * @return : Void * This function write the header of Excel file. */ function GetHeader(){ $header = <<<EOH <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=us-ascii"> <meta name=ProgId content=Excel.Sheet> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:LastAuthor>Sriram</o:LastAuthor> <o:LastSaved>2005-01-02T07:46:23Z</o:LastSaved> <o:Version>10.2625</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:DownloadComponents/> </o:OfficeDocumentSettings> </xml><![endif]--> <style> <!--table {mso-displayed-decimal-separator:"\."; mso-displayed-thousand-separator:"\,";} @page {margin:1.0in .75in 1.0in .75in; mso-header-margin:.5in; mso-footer-margin:.5in;} tr {mso-height-source:auto;} col {mso-width-source:auto;} br {mso-data-placement:same-cell;} .style0 {mso-number-format:General; text-align:general; vertical-align:bottom; white-space:nowrap; mso-rotate:0; mso-background-source:auto; mso-pattern:auto; color:windowtext; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Arial; mso-generic-font-family:auto; mso-font-charset:0; border:none; mso-protection:locked visible; mso-style-name:Normal; mso-style-id:0;} td {mso-style-parent:style0; padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:windowtext; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Arial; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:general; vertical-align:bottom; border:none; mso-background-source:auto; mso-pattern:auto; mso-protection:locked visible; white-space:nowrap; mso-rotate:0;} .xl24 {mso-style-parent:style0; white-space:normal;} --> </style> <!--[if gte mso 9]><xml> <x:ExcelWorkbook> <x:ExcelWorksheets> <x:ExcelWorksheet> <x:Name>RELATORIO</x:Name> <x:WorksheetOptions> <x:Selected/> <x:ProtectContents>False</x:ProtectContents> <x:ProtectObjects>False</x:ProtectObjects> <x:ProtectScenarios>False</x:ProtectScenarios> </x:WorksheetOptions> </x:ExcelWorksheet> </x:ExcelWorksheets> <x:WindowHeight>10005</x:WindowHeight> <x:WindowWidth>10005</x:WindowWidth> <x:WindowTopX>120</x:WindowTopX> <x:WindowTopY>135</x:WindowTopY> <x:ProtectStructure>False</x:ProtectStructure> <x:ProtectWindows>False</x:ProtectWindows> </x:ExcelWorkbook> </xml><![endif]--> </head> <body link=blue vlink=purple> <table x:str border=0 cellpadding=0 cellspacing=0 style='border-collapse: collapse;table-layout:fixed;'> EOH; return $header; } function GetFooter(){ return "</table></body></html>"; } /* * @Params : $line_arr: An valid array * @Return : Void */ function writeLine($line_arr){ if($this->state!="OPENED"){ $this->error="Error : Please open the file."; return false; } if(!is_array($line_arr)){ $this->error="Error : Argument is not valid. Supply an valid Array."; return false; } fwrite($this->fp,"<tr>"); foreach($line_arr as $col) fwrite($this->fp,"<td class=xl24 width=64 >$col</td>"); fwrite($this->fp,"</tr>"); } /* * @Params : Void * @Return : Void */ function writeRow(){ if($this->state!="OPENED"){ $this->error="Error : Please open the file."; return false; } if($this->newRow==false){ fwrite($this->fp,"<tr>"); }else{ fwrite($this->fp,"</tr><tr>"); $this->newRow=true; } } /* * @Params : $value : Coloumn Value * @Return : Void */ function writeCol($value){ if($this->state!="OPENED"){ $this->error="Error : Please open the file."; return false; } fwrite($this->fp,"<td class=xl24 width=64 >$value</td>"); } } ?>
PRONTO! esta pronto aqui nosso sistema de pesquisa com geração dos resultados em um relatorio criado em formato .xls (excel).
Entendimento dos campos da tabela:
Como você pode notar, na tabela "dados" existe um campo "ativo", criei ele com a finalidade de deixar com que você possa controlar os registros em status de ativo, caso, o valor deste seja 1 --> ou deixar o registro inativo caso o valor seja 0. Para tanto o tipo desse campo é INT de tamanho 1.
Ex.: de uso --> suponhamos que na tabela dados você tenha os seguintes registros:
id: 1
data: 1984-11-03
ativo: 1
nome: Angelo Lefundes
email: comercial@angelolefundes.com.br
cpf: 03210595224
e
id: 3
data: 1984-11-13
ativo: 0
nome: Geliane Souza
email: gege@hotmail.com
cpf: 12345678910
entendendo o resto...
temos 1 registro ATIVO com valor = 1 E 1 registro INATIVO com valor = 0
caso você queira que nos relatorios da pesquisa imprima somente os registros ATIVOS -->> você vai ter que adionar na query $consulta da pagina gera.php um where ativo = '1'
Ficando assim:
<?php $consulta = "select * from dados where ativo = '1' AND data BETWEEN '$datavencinicio' AND '$datavencfinal' order by id"; ?>
Lembrando que deixei como padrão o valor "0" do campo "ativo" na tabela.
"0" -> inativo, ou seja -> todos os registros cadastrados inicialmente vão estar inativos. Ai você vai criar um admin do sistema onde através de um radio button você possa escolher o status do registro, e poder altera-lo para "ativo" ou "inativo" -> exibir ou não exibir: entendeu?
Uma observação importante:
N página index.php, onde tem o formulário, no campo onde vai digitar o nome do arquivo a ser gerado do relatório terá q ser escrito no formato: nome_do_seu_arquivo.xls -> não esquecer de colocar .xls!!!
ex.: relatorio_10-01-2009.xls
Dúvidas envie um comentario abaixo.
Páginas:
1
2