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.