Autor Tópico: Fazendo um relatório FPDF  (Lida 15133 vezes)

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Fazendo um relatório FPDF
« Online: Outubro 28, 2012, 01:24:52 pm »
Olá pessoal, estou iniciando esse tópico para abordamos relatórios feitos no "braço", pois não há condições de fazer um relatório da forma que foi apresentado nos vídeos da Netmake, onde para se desenhar o layout da folha tem-se que fazer upload de um arquivo jpg ou png para ficar como Background da página! Imagine um relatório com 100 página e um background pesado cheio de imagens o quanto iria demorar a ser gerado esses relatórios. Já que o SC utiliza biblioteca FPDF porque não fazer tudo em Blank ? Vamos nos ajudar e compartilhar conhecimentos!

Eu fiz um escopo de um relatório de "Centro de custo" onde pretendo trazer valores do banco de dados! O meu problema é esse, como fazer aparecer os valores do banco no fpdf com o SC? Vai abaixo um exemplo do que pretendo fazer:

(OBS: Apenas Copie e Cole esse código em um Blank e execute).


sc_include_lib ("fpdf");

$pdf=new FPDF("P","pt","A4");// Instanciando a classe FPDF
$pdf->AddPage();// Adcionando a página


   /*----------------------- Cabeçalho do Formulário ------------------------ */
   
   $pdf->SetXY(15,15);// Posicionando as células
   $pdf->Cell(563,85,"",1,1,'C');// Célula do cabeçalho
   $pdf->SetFont('Arial','B',15);
   $pdf->SetXY(205,25);
   $pdf->Cell(5,15,"CENTRO DE CUSTO");
   $pdf->SetFont('Arial','I',9);
   $pdf->SetXY(201,43);
   $pdf->Cell(45,5,"Despesas por centro de custo baixado");
   $pdf->SetXY(233,60);
   $pdf->Cell(5,15,"Módulo Financeiro");

   /* Colunas do Formulário */
   $pdf->SetFont('Arial','B',9);// Configurando a fonte
   $pdf->SetXY(15,110);// Posicionando as células
   $pdf->Cell(60,15,"Lançamento",1,1,'C');// Configurando as células
   $pdf->SetXY(75,110);
   $pdf->Cell(60,15,"Baixa",1,1,'C');
   $pdf->SetXY(135,110);
   $pdf->Cell(140,15,"Fornecedor",1,1,'C');
   $pdf->SetXY (275,110);
   $pdf->Cell (180,15,"Descrição",1,1,'C');
   $pdf->SetXY (455,110);
   $pdf->Cell (63,15,"Documento",1,1,'C');
   $pdf->SetXY (518,110);
   $pdf->Cell (60,15,"Valor",1,1,'C');
   
   /* ------------------------ Conteúdo ----------------------------------*/
        /* Esses valores é o que pretendo pegar diretamente do banco, como fazer no SC ? */

    $data_conta = '20/01/2012'; // Instanciando variáveis
    $data_baixa  = '30/02/2012';
    $fornecedor = 'Banco do Brasil';
    $descricao  = 'Pagamento de títulos';
    $documento = '201225241';
    $valor_real = 'R$ 230,00';
 
   $pdf->SetFont('Times','i',10);
   $pdf->SetXY(15,135);
   $pdf->Cell(60,15,$data_conta,1,1,'C');
   $pdf->SetXY(75,135);
   $pdf->Cell(60,15,$data_baixa,1,1,'C');
   $pdf->SetXY(135,135);
   $pdf->Cell(140,15,$fornecedor,1,1,'C');
   $pdf->SetXY(275,135);
   $pdf->Cell(180,15,$descricao,1,1,'C');
   $pdf->SetXY(455,135);
   $pdf->Cell(63,15,$documento,1,1,'C');
   $pdf->SetXY(518,135);
   $pdf->Cell(63,15,$valor_real,1,1,'C');

   /*------------------------------ Rodapé ---------------------------------*/
$pdf->Output();// Saída do documento

Acredito que o ganho de desempenho dos relatórios será superior aos desenvolvido diretamente no PDFReport, sem falar que desenvolvendo no Blank teremos infinitas possibilidades de layout!

Alguém pode me ajudar nessa dúvida? De como pegar os valores do banco?
F. A.
Analista de Sistemas

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Fazendo um relatório FPDF
« Responder #1 Online: Outubro 28, 2012, 08:42:03 pm »
Temos diversos exemplos aqui no forun, de uma pesquisada

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Fazendo um relatório FPDF
« Responder #2 Online: Outubro 28, 2012, 10:24:57 pm »
Poxa vida! Agora que percebi que coloquei um assunto de "Blank"  em um tópico de "Abas", espero que possa ser transferido pelos moderadores para o espeço correto.

Obrigado por responder Haroldo, na verdade eu vi sim os tópicos relacionados ao FPDF, porém não tinha uma especificação como um passo a passo, e sim exemplos muito avançados! Infelizmente não tem algo do tipo na documentação da ferramenta. Ainda estou me adaptando ao "paradigma" do SC e suas macros. O único que se aproximou da minha dúvida foi esse: http://www.netmake.com.br/forum/index.php/topic,4926.msg20935.html#msg20935

F. A.
Analista de Sistemas

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Fazendo um relatório FPDF
« Responder #3 Online: Outubro 31, 2012, 04:46:42 pm »
Poxa vida! Agora que percebi que coloquei um assunto de "Blank"  em um tópico de "Abas", espero que possa ser transferido pelos moderadores para o espeço correto.

Obrigado por responder Haroldo, na verdade eu vi sim os tópicos relacionados ao FPDF, porém não tinha uma especificação como um passo a passo, e sim exemplos muito avançados! Infelizmente não tem algo do tipo na documentação da ferramenta. Ainda estou me adaptando ao "paradigma" do SC e suas macros. O único que se aproximou da minha dúvida foi esse: http://www.netmake.com.br/forum/index.php/topic,4926.msg20935.html#msg20935

Fred sinceramente se fosse você não perdia tempo com PDF Report, partia para a consulta Formato Livre, muito mais fácil de trabalhar, pelo menos na minha humilde opinião.

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Fazendo um relatório FPDF
« Responder #4 Online: Outubro 31, 2012, 08:22:31 pm »
nunca usei formato livre, mas me dou muito bem com report pdf depois de algumas bibliotecas que desenvolvi  para ajudar na produção, ficou mais fácil ainda, e mais, o formato pdf é amplamente usado em qualquer plataforma e facilmente transportável, além da excelência no acabamento.

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Fazendo um relatório FPDF
« Responder #5 Online: Novembro 01, 2012, 10:16:48 pm »
Poxa vida! Agora que percebi que coloquei um assunto de "Blank"  em um tópico de "Abas", espero que possa ser transferido pelos moderadores para o espeço correto.

Obrigado por responder Haroldo, na verdade eu vi sim os tópicos relacionados ao FPDF, porém não tinha uma especificação como um passo a passo, e sim exemplos muito avançados! Infelizmente não tem algo do tipo na documentação da ferramenta. Ainda estou me adaptando ao "paradigma" do SC e suas macros. O único que se aproximou da minha dúvida foi esse: http://www.netmake.com.br/forum/index.php/topic,4926.msg20935.html#msg20935

Fred sinceramente se fosse você não perdia tempo com PDF Report, partia para a consulta Formato Livre, muito mais fácil de trabalhar, pelo menos na minha humilde opinião.

Saulo, o FPDF me da mais liberdade de Layout, o PDFReport me da mais produtividade, porém estou apanhando feio para fazer o que quero! Por exemplo, fazer Bordas ao redor das Células, Fazer um totalizador de soma, cara to apanhando feio, o pior que a documentação do SC é muito simples! Infelizmente estou indo pelo método mais "sofrido" que é por tentativa e erro! Se eu conseguir dominar esse PDFReport vou fazer muita coisa bacana. Espero um dia, obter experiência suficiente no SC, farei questão de fazer um Blog com videos tutoriais pro pessoal não precisar passar por isso que estou passando.

Abraços!
F. A.
Analista de Sistemas

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Fazendo um relatório FPDF
« Responder #6 Online: Novembro 02, 2012, 11:24:41 am »
Poxa vida! Agora que percebi que coloquei um assunto de "Blank"  em um tópico de "Abas", espero que possa ser transferido pelos moderadores para o espeço correto.

Obrigado por responder Haroldo, na verdade eu vi sim os tópicos relacionados ao FPDF, porém não tinha uma especificação como um passo a passo, e sim exemplos muito avançados! Infelizmente não tem algo do tipo na documentação da ferramenta. Ainda estou me adaptando ao "paradigma" do SC e suas macros. O único que se aproximou da minha dúvida foi esse: http://www.netmake.com.br/forum/index.php/topic,4926.msg20935.html#msg20935

Fred sinceramente se fosse você não perdia tempo com PDF Report, partia para a consulta Formato Livre, muito mais fácil de trabalhar, pelo menos na minha humilde opinião.

Saulo, o FPDF me da mais liberdade de Layout, o PDFReport me da mais produtividade, porém estou apanhando feio para fazer o que quero! Por exemplo, fazer Bordas ao redor das Células, Fazer um totalizador de soma, cara to apanhando feio, o pior que a documentação do SC é muito simples! Infelizmente estou indo pelo método mais "sofrido" que é por tentativa e erro! Se eu conseguir dominar esse PDFReport vou fazer muita coisa bacana. Espero um dia, obter experiência suficiente no SC, farei questão de fazer um Blog com videos tutoriais pro pessoal não precisar passar por isso que estou passando.

Abraços!

Eu não consigo ver maior liberdade de criação do que é possível com html, CSS, etc... a consulta formato livre é exatamente com este intuito, depois se sua intenção é apenas gerar pdf coloque a consulta pra abrir gerando o pdf direto.

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Fazendo um relatório FPDF
« Responder #7 Online: Novembro 02, 2012, 03:25:27 pm »
Eu não consigo ver maior liberdade de criação do que é possível com html, CSS, etc... a consulta formato livre é exatamente com este intuito, depois se sua intenção é apenas gerar pdf coloque a consulta pra abrir gerando o pdf direto.

Saulo, não entendi direito! Consulta que você fala é um "Grid" no SC ?

Pois há muitos relatórios que quero fazer que não depende de Grid alguma! Um desses é esse relatório de centro de custo! Por isso estou tentando estudar o FPDF ou o PDFReport para poder fazer esses relatórios.
F. A.
Analista de Sistemas

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Fazendo um relatório FPDF
« Responder #8 Online: Novembro 03, 2012, 10:29:03 am »
Eu não consigo ver maior liberdade de criação do que é possível com html, CSS, etc... a consulta formato livre é exatamente com este intuito, depois se sua intenção é apenas gerar pdf coloque a consulta pra abrir gerando o pdf direto.

Saulo, não entendi direito! Consulta que você fala é um "Grid" no SC ?

Pois há muitos relatórios que quero fazer que não depende de Grid alguma! Um desses é esse relatório de centro de custo! Por isso estou tentando estudar o FPDF ou o PDFReport para poder fazer esses relatórios.

Então a consulta formato livre não é um grid..é um relatório que você monta de acordo com a sua necessidade.. nela você pode integrar outras consultas(subconsultas) também em formato livre e ir fazendo tudo o que você faria com PDFReport, porém de uma maneira mais  prática.

Veja este relatório que criei usando consultas Formato Livre https://docs.google.com/open?id=0B_pNH8G09fMvVDU4OWtiVm5qOU0.

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Fazendo um relatório FPDF
« Responder #9 Online: Novembro 03, 2012, 05:56:56 pm »

Então a consulta formato livre não é um grid..é um relatório que você monta de acordo com a sua necessidade.. nela você pode integrar outras consultas(subconsultas) também em formato livre e ir fazendo tudo o que você faria com PDFReport, porém de uma maneira mais  prática.

Veja este relatório que criei usando consultas Formato Livre https://docs.google.com/open?id=0B_pNH8G09fMvVDU4OWtiVm5qOU0.

Rapaz, você me convenceu 100% com essa demonstração de relatório! Vou estudar a fundo esse relatório de "consulta de formato livre" ... Qualquer dúvida posso contar contigo?

Abração!
F. A.
Analista de Sistemas

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Fazendo um relatório FPDF
« Responder #10 Online: Novembro 03, 2012, 07:12:13 pm »

Então a consulta formato livre não é um grid..é um relatório que você monta de acordo com a sua necessidade.. nela você pode integrar outras consultas(subconsultas) também em formato livre e ir fazendo tudo o que você faria com PDFReport, porém de uma maneira mais  prática.

Veja este relatório que criei usando consultas Formato Livre https://docs.google.com/open?id=0B_pNH8G09fMvVDU4OWtiVm5qOU0.

Rapaz, você me convenceu 100% com essa demonstração de relatório! Vou estudar a fundo esse relatório de "consulta de formato livre" ... Qualquer dúvida posso contar contigo?

Abração!
Opa estou a disposição, fui muito ajudado aqui neste forum e o mínimo que posso fazer é ajudar a outros.Se quiser me adicione no msn ou skype

MSN: saulobborges @ hotmail.com
SKYPE: saulobborges

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Fazendo um relatório FPDF
« Responder #11 Online: Novembro 12, 2012, 10:56:39 am »
Saulo,

Como você controla o salto de página? consegue forçar o salto de página em um determinado ponto do relatório?

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Fazendo um relatório FPDF
« Responder #12 Online: Novembro 12, 2012, 01:01:21 pm »
Saulo,

Como você controla o salto de página? consegue forçar o salto de página em um determinado ponto do relatório?

Então até o momento não tive problemas com isso, o relatório esta quebrando as páginas normalmente, mas tem uma opção em css pra fazer as quebras onde você quiser (page-break-after: always) , mas normalmente relatórios que fogem o tamanho normal já determinado nas configurações de exportação eu crio um layout de papel personalizado na impressora do cara e oriento ele a usar aquele tipo de papel.

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Fazendo um relatório FPDF
« Responder #13 Online: Novembro 12, 2012, 01:04:53 pm »
Por exemplo.

Na impressão de um contrato, algumas cláusulas desejo que iniciem numa página em branco, teria como?

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Fazendo um relatório FPDF
« Responder #14 Online: Novembro 12, 2012, 01:13:51 pm »
Com essa opção
Código: [Selecionar]
<div style="page-break-after: always;"></div>, pelo menos nos meus relatórios, ele sempre quebra a impressão e joga a saída restante na próxima página.