Radubrêdo 0 Denunciar post Postado Dezembro 4, 2011 Amigos, Tenho o seguinte código abaixo de impressão de relatório. Porém gostaria de configurá-lo para imprimir o relatório em arquivo PDF. Já fiz o dowsnload dos arquivos do FPDF para o servidor. Só falta configurar o arquivo abaixo com os parâmetro do FPDF. Alguem pode me ajudar?? Segue o script do relatório: <?php /* * classe RelatorioForm * relatório de vendas por período */ class RelatorioForm extends TPage { private $form; // formulário de entrada /* * método construtor * cria a página e o formulário de parâmetros */ public function __construct() { parent::__construct(); // instancia um formulário $this->form = new TForm('form_relat_vendas'); // instancia uma tabela $table = new TTable; // adiciona a tabela ao formulário $this->form->add($table); // cria os campos do formulário $data_ini = new TEntry('data_ini'); $data_fim = new TEntry('data_fim'); // define os tamanhos $data_ini->setSize(100); $data_fim->setSize(100); // adiciona uma linha para o campo data inicial $row=$table->addRow(); $row->addCell(new TLabel('Data Inicial:')); $row->addCell($data_ini); // adiciona uma linha para o campo data final $row=$table->addRow(); $row->addCell(new TLabel('Data Final:')); $row->addCell($data_fim); // cria um botão de ação $gera_button=new TButton('gera'); // define a ação do boão $gera_button->setAction(new TAction(array($this, 'onGera')), 'Gerar Relatório'); // adiciona uma linha para a ação do formulário $row=$table->addRow(); $row->addCell($gera_button); // define quais são os campos do formulário $this->form->setFields(array($data_ini, $data_fim, $gera_button)); // adiciona o formulário à página parent::add($this->form); } /* * método onGera * gera o relatório, baseado nos parâmetros do formulário */ function onGera() { // obtém os dados do formulário $dados = $this->form->getData(); // joga os dados de volta ao formulário $this->form->setData($dados); // lê os campos do formulário, converte para o padrão americano $data_ini = $this->conv_data_to_us($dados->data_ini); $data_fim = $this->conv_data_to_us($dados->data_fim); // instancia uma nova tabela $table = new TTable; $table->border = 1; $table->width = '80%'; $table->style = 'border-collapse:collapse'; // adiciona uma linha para o cabeçalho do relatório $row = $table->addRow(); $row->bgcolor = '#a0a0a0'; // adiciona as células ao cabeçalho $cell = $row->addCell('Discriminação'); $cell = $row->addCell('Qtd'); //$cell = $row->addCell('Destino'); $cell = $row->addCell('Valor Unitário'); $cell = $row->addCell('Sub Total'); $cell->align = 'right'; try { // inicia transação com o banco 'sq_livro' TTransaction::open('sq_livro'); // instancia um repositório da classe Venda $repositorio = new TRepository('Venda'); // cria um critério de seleção por intervalo de datas $criterio = new TCriteria; $criterio->add(new TFilter('data_venda', '>=', $data_ini)); $criterio->add(new TFilter('data_venda', '<=', $data_fim)); $criterio->setProperty('order', 'id_cliente'); // lê todas vendas que satisfazem ao critério $vendas = $repositorio->load($criterio); // verifica se retornou algum objeto if ($vendas) { $sub_total =0; $total_qtde=0; // percorre as vendas foreach ($vendas as $venda) { // adiciona uma linha à tabela e define suas propriedades $row = $table->addRow(); $row->bgcolor = "#e0e0e0"; // adiciona células para data da venda e dados do cliente //$cell = $row->addCell($this->conv_data_to_br($venda->data_venda)); //$cell = $row->addCell($venda->id_cliente . ' : ' . $venda->cliente->nome); $cell->colspan=3; // percorre os itens da venda foreach ($venda->itens as $item) { // adiciona uma linha para cada item da venda $row = $table->addRow(); // adiciona as células com os dados do item $cell = $row->addCell($item->descricao); $cell = $row->addCell($item->quantidade); $cell = $row->addCell(number_format($item->preco_venda,2,',','.')); $cell->align = 'right'; $cell = $row->addCell(number_format(($item->quantidade) * ($item->preco_venda),2,',','.')); $cell->align = 'right'; // acumula totais de valor e quantidade $sub_total += $item->quantidade * $item->preco_venda; } // adiciona uma linha para os totais da venda $row = $table->addRow(); } $cell = $row->addCell('<b>Total</b>'); $cell = $row->addCell(''); $cell = $row->addCell(''); $cell = $row->addCell('<b>'.number_format($sub_total,2,',','.').'</b>'); $cell->align = 'right'; } // finaliza a transação TTransaction::close(); } catch (Exception $e) // em caso de exceção { // exibe a mensagem gerada pela exceção new TMessage('error', $e->getMessage()); // desfaz todas alterações no banco de dados TTransaction::rollback(); } // adiciona a tabela à página parent::add($table); } /* * método conv_data_to_us() * Converte uma data para o formato yyyy-mm-dd * @param $data = data no formato dd/mm/yyyy */ function conv_data_to_us($data) { $dia = substr($data,0,2); $mes = substr($data,3,2); $ano = substr($data,6,4); return "{$ano}-{$mes}-{$dia}"; } /* * método conv_data_to_br() * Converte uma data para o formato dd/mm/yyyy * @param $data = data no formato yyyy-mm-dd */ function conv_data_to_br($data) { // captura as partes da data $ano = substr($data,0,4); $mes = substr($data,5,2); $dia = substr($data,8,4); // retorna a data resultante return "{$dia}/{$mes}/{$ano}"; } } ?> Ainda não consegui! Alguem me ajuda?? Compartilhar este post Link para o post Compartilhar em outros sites
andre4mil 0 Denunciar post Postado Dezembro 9, 2011 Olha cara eu tive esse mesmo problema fiz o seguinte e consegui: //inclusão da biblioteca define('FPDF_FONTPATH', 'font/'); require('fpdf/fpdf.php'); // bd.php deve conter as funções para se conectar no banco de dados include("funcoes.php"); $conexao = conectaBD(); conectaBD(); // busca os dados no banco de dados $sql = "SELECT * from Cliente ORDER BY data DESC "; $busca = mysql_query($sql); $pdf = new FPDF(); ..... ve se da certo pois você tem que incluir a blibioteca. Compartilhar este post Link para o post Compartilhar em outros sites
FBrandt 0 Denunciar post Postado Dezembro 10, 2011 cara FPDF é fogo.. mta coisinha para configurar .. existe algo mais simples.. chama-se MPDF .. você baixa a lib e usa assim: <?php ob_start(); //inicia o buffer ?> <b>aqui você insere o html que quiser, com css e td que tem direito</b> <?php $html = ob_get_clean(); // pega o conteudo do buffer, insere na variavel e limpa a memória $html = utf8_encode($html); // converte o conteudo para uft-8 define('MPDF_PATH', 'classes/mpdf411/'); include(MPDF_PATH.'mpdf.php'); // inclui a classe $mpdf = new mPDF(); // cria o objeto $mpdf->allow_charset_conversion=true; // permite a conversao (opcional) $mpdf->charset_in='UTF-8'; // converte todo o PDF para utf-8 $mpdf->WriteHTML($html); $mpdf->Output(); exit(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Radubrêdo 0 Denunciar post Postado Dezembro 13, 2011 Olá FBrandt! Tentei mas nao consegui. Poderia me dizer como ficaria meu código postado acima, utilizando o MPDF?? cara FPDF é fogo.. mta coisinha para configurar .. existe algo mais simples.. chama-se MPDF .. você baixa a lib e usa assim: <?php ob_start(); //inicia o buffer ?> <b>aqui você insere o html que quiser, com css e td que tem direito</b> <?php $html = ob_get_clean(); // pega o conteudo do buffer, insere na variavel e limpa a memória $html = utf8_encode($html); // converte o conteudo para uft-8 define('MPDF_PATH', 'classes/mpdf411/'); include(MPDF_PATH.'mpdf.php'); // inclui a classe $mpdf = new mPDF(); // cria o objeto $mpdf->allow_charset_conversion=true; // permite a conversao (opcional) $mpdf->charset_in='UTF-8'; // converte todo o PDF para utf-8 $mpdf->WriteHTML($html); $mpdf->Output(); exit(); ?> Compartilhar este post Link para o post Compartilhar em outros sites