Autor Tópico: Relatório em PDF com gráfico de linhas  (Lida 3595 vezes)

Maurélio

  • Avançado
  • ****
  • Mensagens: 304
  • O eterno Aprendiz.'.
    • Email
Relatório em PDF com gráfico de linhas
« Online: Julho 10, 2013, 04:05:44 pm »
Olá,

Estou precisando montar um PDF que na verdade é um relatório que conterá vários campos de uma consulta, mas preciso também que apareça um gráfico de linhas com as informações que constam das informações que foram impressas, tudo em uma mesma folha do PDF.

É possível fazer isto no SC?

Não encontrei nenhum exemplo.

Antecipadamente agradeço o auxílio de todos.

[]'s
MA
Marco Aurélio

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #1 Online: Julho 15, 2013, 01:00:55 pm »
Tente fazer a consulta com resumo mostrando o gráfico no final.
Aí vc vai em Consulta -> Confuiguração -> Módulo Inicial e escolhe a opção "Geração PDF"

[]s
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

Maurélio

  • Avançado
  • ****
  • Mensagens: 304
  • O eterno Aprendiz.'.
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #2 Online: Julho 16, 2013, 11:58:28 am »
Allan,
Obrigado pela dica.
Vou tentar fazer isto e depois informo aqui no forum o resultado.
[]´s
Marco Aurélio

Maurélio

  • Avançado
  • ****
  • Mensagens: 304
  • O eterno Aprendiz.'.
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #3 Online: Setembro 27, 2013, 05:55:59 pm »
Olá pessoal,

Eu aqui de novo....

Ainda estou com o problema abaixo.

O caso não é gerar um gráfico com o resumo e sim gerar um PDF através de uma consulta.

Já tenho o PDF sendo gerado corretamente, com todas as informações que constam do registro, mas eu preciso também colocar no meio deste PDF um gráfico de linhas, onde este gráfico (bem simples), demonstre as informações que estão nesta mesma página, mas em formato gráfico.

Tentei várias coisas como o PHPLOT, mas quando coloco o require no início do código do PDF ele não funciona mais.

Alguém já teve uma necessidade assim e pode passar o caminho das pedras?

[]'s
Marco Aurélio

Kleyber

  • Expert
  • *****
  • Mensagens: 2232
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #4 Online: Setembro 27, 2013, 07:12:22 pm »
Maurelio,

Estou com um perrengue desses. No meu caso eu usei a API do Google pra gerar o gráfico. O PDF é gerado direitinho mas o gráfico não vai nem a pau. Estou vendo aqui outras opções e se descobrir te passo.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #5 Online: Setembro 27, 2013, 08:27:32 pm »
Eu estou usando o PHPlot no ReportPdf.

Coloquei ele como uma biblioteca no SC.
No Report:

* No layoutPdf/Código/Definição, eu chamo a rotina geradora do gráfico.
Código: [Selecionar]
$this->gera_barras();* No LayoutPdf/Código/Corpo, eu imprimo o gráfico:
Código: [Selecionar]
$this->Pdf->Image("barra.png",5,5,200,200);
* Na função PHP gera_barras(), chama uma comum a todos os tipos de gráficos que monta a matriz com os dados :
 
Código: [Selecionar]
função organiza_registros()
Código: [Selecionar]
$dados = organiza_registros();

$plot = new PHPlot(1000,1000);
$plot->SetPrintImage(False); 
$plot->SetImageBorderType('plain');
$plot->SetDataColors(array('red', 'green', 'blue'));
$plot->SetPlotType('bars');
$plot->SetDataType('text-data');
$plot->SetDataValues($dados);

$plot->SetTitle($this->SC_conv_utf8('Manifestações por Objetivo'));
$plot->SetYTitle($this->SC_conv_utf8('Nº de Manifestações'));

# Turn off X tick labels and ticks because they don't apply here:
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');

# Make sure Y=0 is displayed:
$plot->SetPlotAreaWorld(NULL, 0);
# Y Tick marks are off, but Y Tick Increment also controls the Y grid lines:
//$plot->SetYTickIncrement(100);

# Turn on Y data labels:
$plot->SetYDataLabelPos('plotin');

# With Y data labels, we don't need Y ticks or their labels, so turn them off.
$plot->SetYTickLabelPos('none');
$plot->SetYTickPos('none');

$plot->DrawGraph();

$imagem = $plot->EncodeImage('raw');

$fp = fopen("barra.png", "w");
fwrite($fp, $imagem);
fclose($fp);


Eu gravo o gráfico como uma imagem no disco para mostrar no relatório.
Tem como guardar o gráfico numa variável, mas o ReportPdf não "entende" a variável e não imprime nada. Num consulta funciona legal.

A base foi dada.
Funciona bem.

ABraços.

Kleyber

  • Expert
  • *****
  • Mensagens: 2232
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #6 Online: Setembro 28, 2013, 09:15:04 am »
Jorge,

Já estava me empolgando com o PHPlot, mas pelo visto tem o mesmo problema da API do Google. Vou pesquisar mais...
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #7 Online: Setembro 29, 2013, 10:38:08 pm »
Kleyber,

Se vc se refere ao problema de gravar o gráfico em uma variável, acho que o problema não é do PHPlot, pois fazendo isso e usando a variável numa consulta, funciona legal. O problema é no ReportPdf, mas nada difícil de contornar, com a gravação em disco.

[]s

Kleyber

  • Expert
  • *****
  • Mensagens: 2232
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #8 Online: Setembro 30, 2013, 07:39:20 am »
Jorge,

Meu caso é com uma consulta usando formato livre. Quando envio para o HTML, ele até aparece, mas quando exporta pra PDF não vai. Você já fez esse teste?
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #9 Online: Setembro 30, 2013, 08:58:45 am »
Kleyber,

Vou fazer o teste e informo o resultado.

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #10 Online: Outubro 03, 2013, 01:21:13 pm »
Kleyber,

De repente ajude:
Eu coloquei numa biblioteca a rotina citada no exemplo http://www.fpdf.org/en/script/script45.php, da página do FPDF.
Imprime, legal, o gráfico, a partir de uma variável  de memória. Antes não funcionava.


Haroldo

  • Expert
  • *****
  • Mensagens: 6262
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Relatório em PDF com gráfico de linhas
« Responder #11 Online: Outubro 03, 2013, 01:27:56 pm »
Só como citação:

https://groups.google.com/forum/#!msg/google-visualization-api/VfBu7oV7y_k/wB6tJIblDx4J

APIs do Google tem opções de gerar a imagem de um gráfico,  em vez de ser interativo é apenas uma imagem, que se incorpora sem problemas as consultas SC e podemos ser exportados apara PDF como qualquer outra imagem.

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Relatório em PDF com gráfico de linhas
« Responder #12 Online: Outubro 03, 2013, 02:53:04 pm »
Pois é, Haroldo.

Tenho alguns clientes que não tem acesso contínuo a internet. Dai não posso depender de rotinas na web.
Instalei o Vertrigo na máquina deles e assim vai funcionando localmente.

[]s

Haroldo

  • Expert
  • *****
  • Mensagens: 6262
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Relatório em PDF com gráfico de linhas
« Responder #13 Online: Outubro 03, 2013, 03:03:47 pm »
Hum,

Hoje em dia praticamente todo e qualquer equipamento tem acesso a internet,  é um metiê praticamente obrigatório.

Dai eu partiria para instalar as apis localmente,  não sei se as do google são liberadas, mas existem outras de tão boa qualidade quanto as do google, algumas pagas outras grátis.