Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Adicionar um FIELD dentro do SQL Pessoal preciso colocar um FIELD no meu SQL para que eu poça procurar no BD a ficha e esse valor ser utilizado na minha função do gráfico. Onde esta os XXX no WHERE preciso colocar aí meu campo para fazer um TDBUniqueSearch. ...
RA
Adicionar um FIELD dentro do SQL  
Pessoal preciso colocar um FIELD no meu SQL para que eu poça procurar no BD a ficha e esse valor ser utilizado na minha função do gráfico. Onde esta os XXX no WHERE preciso colocar aí meu campo para fazer um TDBUniqueSearch.

  1. <?php
  2. class LineChartView extends TPage
  3. {
  4.     function __construct$show_breadcrumb true )
  5.     {
  6.         parent::__construct();
  7.         $html = new THtmlRenderer('app/resources/google_line_chart.html');
  8.         
  9.         TTransaction::open('projeto');
  10.         $conn TTransaction::get();
  11.         
  12.         $linhas $conn->query('SELECT numero_sessao, peso FROM anamnesecorporal_sessao WHERE id_ficha_analitica=XXXXXX ORDER BY numero_sessao');
  13.         
  14.         $dados = array();
  15.         $dados[] = ['Sessão','Valor'];
  16.  
  17.         foreach($linhas as $linha)
  18.         {
  19.             $dados[] = [(string)$linha[0],(float)$linha[1]];
  20.         }
  21.         
  22.         $panel = new TPanelGroup('Grafico de Resultados');
  23.         $panel->style='width:100%';
  24.         $panel->add($html);
  25.         $html->enableSection('main', array('data' => json_encode($dados),
  26.                                            'width' => '40%',
  27.                                            'height' => '300px',
  28.                                            'ytitle' => 'Dados'
  29.                                            'xtitle' => 'Sessão',
  30.                                            'title'  => 'Resultados',
  31.                                            'uniqid' => uniqid()));
  32.         parent::add($panel);   
  33.         TTransaction::close();    
  34.     }
  35. }?>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (6)


MG

Temta assim: detalhe, troque apóstrofo por aspas duplas.

  1. <?php
  2. $linhas $conn->query("SELECT numero_sessao, peso FROM anamnesecorporal_sessao WHERE id_ficha_analitica={$id} ORDER BY numero_sessao");
  3. ?>
RA

Deu esse erro:

Object of class AdiantiWidgetWrapperTDBUniqueSearch could not be converted to string

File: appcontrolTestesLineChartView.php : 25
AdiantiCoreAdiantiCoreApplication::errorHandler(4096,Object of class AdiantiWidgetWrapperTDBUniqueSearch could not be converted to string,C:xampphtdocsprojeto_postgresappcontrolTestesLineChartView.php,25,array,AdiantiWidgetTemplateTHtmlRenderer,PDO,AdiantiWidgetContainerTPanelGroup,AdiantiWidgetWrapperTDBUniqueSearch,AdiantiWidgetFormTLabel)
File: libadianticoreAdiantiCoreApplication.php : 62
LineChartView->__construct(LineChartView)
File: engine.php : 23
AdiantiCoreAdiantiCoreApplication::run(1)
File: engine.php : 64
TApplication::run(1)
RA

Código atualizado. Erro acima.

  1. <?php
  2. class LineChartView extends TPage
  3. {
  4.     function __construct$show_breadcrumb true )
  5.     {
  6.         parent::__construct();
  7.         
  8.         $html = new THtmlRenderer('app/resources/google_line_chart.html');
  9.         
  10.         TTransaction::open('projeto');
  11.         $conn TTransaction::get();
  12.         
  13.         $panel = new TPanelGroup('Grafico de Resultados');
  14.         $panel->style='width:100%';
  15.         $panel->add($html);
  16.         
  17.         $id_ficha_analitica = new TDBUniqueSearch('id_ficha_analitica''projeto''FichaAnalitica''id''numero_ficha');
  18.         $id_ficha_analitica->setSize('100%');
  19.         $label1 = new TLabel 'Número da Ficha' );        
  20.         $panel->add($label1);
  21.         $panel->add($id_ficha_analitica);
  22.         $linhas $conn->query("SELECT numero_sessao, peso FROM anamnesecorporal_sessao WHERE id_ficha_analitica = {$id_ficha_analitica} ORDER BY numero_sessao");
  23.         
  24.         $dados = array();
  25.         $dados[] = ['Sessão','Valor'];
  26.  
  27.         foreach($linhas as $linha)
  28.         {
  29.             $dados[] = [(string)$linha[0],(float)$linha[1]];
  30.         }
  31.         
  32.         
  33.         $html->enableSection('main', array('data' => json_encode($dados),
  34.                                            'width' => '40%',
  35.                                            'height' => '300px',
  36.                                            'ytitle' => 'Dados'
  37.                                            'xtitle' => 'Sessão',
  38.                                            'title'  => 'Resultados',
  39.                                            'uniqid' => uniqid()));
  40.         parent::add($panel);   
  41.         TTransaction::close();    
  42.     }
  43. }?>
MG

Pelo que eu vejo do código original, vc adicionou TDBUniqueSearch e a exception está nele. Outro detalhe : toda vez que o formulário é aberto o contruct é executado portanto o id ainda está nulo. A não ser que venha de uma session ou de um onEdit.
Mas veja que o problema está em Object of class AdiantiWidgetWrapperTDBUniqueSearch could not be converted to string
NR

Rafael, separe as coisas.

Na função __construct deixe somente a montagem do seu form. Aliás, pelo que vi no código, você não criou nenhum formulário, dessa forma não será possível obter as informações preenchidas pelo usuário no tdbuniquesearch.

A parte da geração do gráfico deve ficar em outra função, que só será chamada após clicar em um botão.

Outra coisa, como seu sql é simples, evitar escrevê-lo manualmente. Utilize os recursos do framework para obter as informações desejadas. Segue abaixo modelo de estrutura:
  1. <?php
  2. function __construct$show_breadcrumb true )
  3.     {
  4.         parent::__construct();
  5.         $this->form = new BootstrapFormBuilder('nome_seu_form');
  6.         $this->form->setFormTitle('Titulo form');
  7.         $id_ficha_analitica = new TDBUniqueSearch('id_ficha_analitica''projeto''FichaAnalitica''id''numero_ficha');
  8.         $id_ficha_analitica->setSize('100%');
  9.        $this->form->addFields([new TLabel('Ficha')],[$id_ficha_analitica]);
  10.        $this->form->addAction('Gerar gráfico', new TAction(array($this'onGenerate')), 'fa:line-chart');
  11.        parent::add($this->form);
  12. }
  13. function onGenerate()
  14. {
  15.         $data $this->form->getData(); // buscar dados do form preenchidos pelo usuario
  16.         $html = new THtmlRenderer('app/resources/google_line_chart.html');
  17.         
  18.         TTransaction::open('projeto');
  19.         $conn TTransaction::get();
  20.         
  21.         $panel = new TPanelGroup('Grafico de Resultados');
  22.         $panel->style='width:100%';
  23.         $panel->add($html);
  24.         
  25.         //$linhas = $conn->query("SELECT numero_sessao, peso FROM anamnesecorporal_sessao WHERE id_ficha_analitica = {$id_ficha_analitica} ORDER BY numero_sessao");
  26.         $linhas Anamnesecorporal_sessao::where('id_ficha_analitica','=',$data->id_ficha_analitica)->orderBy('numero_sessao','asc')->load();// supondo que vc criou o model para a tabela anamnesecorporal_sessao
  27.         
  28.         $dados = array();
  29.         $dados[] = ['Sessão','Valor'];
  30.  
  31.         foreach($linhas as $linha)
  32.         {
  33.             $dados[] = [(string)$linha->numero_sessao,(float)$linha->peso];
  34.         }
  35.         
  36.         $html->enableSection('main', array('data' => json_encode($dados),
  37.                                            'width' => '40%',
  38.                                            'height' => '300px',
  39.                                            'ytitle' => 'Dados'
  40.                                            'xtitle' => 'Sessão',
  41.                                            'title'  => 'Resultados',
  42.                                            'uniqid' => uniqid()));
  43.         parent::add($panel);   
  44.         TTransaction::close();    
  45.     }
  46. ?>
RA

Blz, vou verificar. Obrigado.