PC
Graficos com dados vindo do banco de dados
Caros amigos, bom dia!
Recorro mais uma vez ao auxilio da comunidade.
Primeiro gostaria de fazer um desabafo, o framework possui uma API para gráficos em todo material que encontro a utilização dela são com dados fixos e não dinâmicos, quando encontro algum material com dados dinâmicos é com outra API esse fato me causou muita estranheza olha que eu acompanho esse framework há tempos.e sempre existiu solução e estranhei mais ainda nenhuma manifestação da equipe de desenvolvimento, agora assistindo os videos do lançamento do Builder existe o modulo de geração de gráfico, portanto, concluo que a API que está sendo utilizada funciona e porque não tem nenhum exemplo de utilização da mesma?
Vamos deixar de reclamação segue minha necessidade, quando dou um echo nas informações que foram retornadas pelo Select existe conteúdo, porém, quando passo para a enableSection apresenta o erro abaixo:
[Wed Dec 13 13:01:13.401530 2017] [:error] [pid 2308:tid 1272] [client ::1:15878] PHP Fatal error: Call to a member function enableSection() on null in C:\Bitnami\wamp\apache2\htdocs\contpag\app\control\CommonPage.class.php on line 54, referer: localhost/contpag/index.php?class=CommonPage
Em anexo está a imagem com o resultado do echo.
Abaixo o código que estou utilizando:
Conto com a excelente ajuda que tenho tido da comunidade.
Abs à todos!
Paulo Corrêa
Recorro mais uma vez ao auxilio da comunidade.
Primeiro gostaria de fazer um desabafo, o framework possui uma API para gráficos em todo material que encontro a utilização dela são com dados fixos e não dinâmicos, quando encontro algum material com dados dinâmicos é com outra API esse fato me causou muita estranheza olha que eu acompanho esse framework há tempos.e sempre existiu solução e estranhei mais ainda nenhuma manifestação da equipe de desenvolvimento, agora assistindo os videos do lançamento do Builder existe o modulo de geração de gráfico, portanto, concluo que a API que está sendo utilizada funciona e porque não tem nenhum exemplo de utilização da mesma?
Vamos deixar de reclamação segue minha necessidade, quando dou um echo nas informações que foram retornadas pelo Select existe conteúdo, porém, quando passo para a enableSection apresenta o erro abaixo:
[Wed Dec 13 13:01:13.401530 2017] [:error] [pid 2308:tid 1272] [client ::1:15878] PHP Fatal error: Call to a member function enableSection() on null in C:\Bitnami\wamp\apache2\htdocs\contpag\app\control\CommonPage.class.php on line 54, referer: localhost/contpag/index.php?class=CommonPage
Em anexo está a imagem com o resultado do echo.
Abaixo o código que estou utilizando:
- <?php
- /**
- * CommonPage
- *
- * @version 1.0
- * @package control
- * @author Pablo Dall'Oglio
- * @copyright Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
- * @license http://www.adianti.com.br/framework-license
- */
- class CommonPage extends TPage
- {
- //private $html;
- public function __construct()
- {
- parent::__construct();
- parent::add(new TLabel('Demonstrativos'));
- $html = new THtmlRenderer('app/resources/google_pie_chart.html');
- $table = new TTable;
- $div = new TElement('div');
- $div->id = 'container';
- $div->style = "width:950px;height:600px";
- $div->add($html);
- $table->addRow()->addCell($div);
- parent::add($table);
- $this->onGenerator();
- }
- function onGenerator()
- {
- TTransaction::open('contpag');
- $conn = TTransaction::get();
- $colunas = $conn->query('SELECT * FROM totalpormes ORDER BY nome');
- $dados = '';
- foreach($colunas as $coluna)
- {
- $dados = $dados . '[\'' .$coluna[0].'\',' .$coluna[1] .'];';
- }
- $dados = substr($dados,0,-1);
- echo json_encode($dados);
- /*
- $this->html->enableSection('main', [ 'width' => '100%',
- 'height' => '300px',
- 'title' => 'Salários',
- 'data' => json_encode($dados)] );
- */
- TTransaction::close();
- }
- }
- ?>
Conto com a excelente ajuda que tenho tido da comunidade.
Abs à todos!
Paulo Corrêa
Você está tentando utilizar uma variável que não existe, pois "$this->html" não foi inicializada. Modifique no construtor o uso de "$html" para "$this->html":
Nataniel como sempre sua ajuda foi útil, alterei o código não dá mais o erro, mas, o gráfico não é exibido, fica a mensagem carregando mas não exibe o gráfico.
A saída das informações estão assim:
A variável $dados deve ser uma matriz, pois a função json_encode faz a transformação necessária para o json usado pelo javascript. Você também precisa definir na primeira linha de $dados as descrições das colunas:
Faça essas alterações :
Junior boa tarde!
Agradeço a ajuda!
Tenho uma dúvida você criou uma tabela e não utilizou e criou um panel e não incluiu não entendi?
Alterei o código não dá mais erro, a div do gráfico é renderizada o titulo do gráfico aparece, contudo, o gráfico não é exibido.
Segue o novo código abaixo:
Tente fazer o cast da coluna do valor para float:
Nataniel você é fera cara!!
Deu certo, muito obrigado!
Estranho não ter nenhum exemplo no fórum ou no tutor.
Feliz Natal!
Galera consegui exibir os gráficos tanto pie, bar e line.
Dei uma olhada no site do google chart existem várias configurações de apresentação, no Adianti só tem essas:
'width' => '100%',
'height' => '300px',
'title' => 'Orçado X Realizado',
'ytitle' => 'Orçado',
'xtitle' => 'Realizado',
No meu grafico de barras os valores estão sendo exibido com 4.1K assim por diante.
Eu gostaria de exibir valores configurados, alterar a cor das barras e outros aonde posso encontrar essa informação no Adianti?
att.
Muito bom!
Parabéns Nataniel por ajudar sempre.
Att.,
Edi
Olá Paulo Corrêa. Amigo, sei que o post é antigo, porém, caso você ou outra pessoa possa ter esse problema eu encontrei uma solução. Acredito, sinceramente que não seja a ideal, porém, resolve o problema de customização de cores das barras dos gráficos.
O que eu fiz foi criar um novo arquivo copiado de app/resources/google_line_chart.html
nele você pode configurar como queira, aqui como exemplo (da linha 19 a 27):
Ah! Lembrando de chamar corretamente o nome do novo arquivo em $html = new THtmlRenderer('app/resources/...');