Relatório em PDF com gráfico de linhas

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

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,
Obrigado pela dica.
Vou tentar fazer isto e depois informo aqui no forum o resultado.
[]´s

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

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.

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. $this->gera_barras();

  • No LayoutPdf/Código/Corpo, eu imprimo o gráfico:$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 :

função organiza_registros()
$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.

Jorge,

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

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

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,

Vou fazer o teste e informo o resultado.

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.

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.

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

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.