menu
Fórum Adianti
menu Menu
TTreeView com dados de tabela Boa Tarde, Pessoal, Sou novo no Adianti e estou tentando popular uma TTreeView com dados de uma tabela. Consigo fazer a select no banco normalmente, mas ao colocar os dados na TTreeView, ela insiste em colocar o código que eu gero com um contador. Segui o exemplo do Tutor e achei pelo exemplo que a última coluna da matriz sempre seria considerado a $key, e portanto, preenchi o ultimo campo...
PS
TTreeView com dados de tabela  
Boa Tarde, Pessoal,

Sou novo no Adianti e estou tentando popular uma TTreeView com dados de uma tabela. Consigo fazer a select no banco normalmente, mas ao colocar os dados na TTreeView, ela insiste em colocar o código que eu gero com um contador.

Segui o exemplo do Tutor e achei pelo exemplo que a última coluna da matriz sempre seria considerado a $key, e portanto, preenchi o ultimo campo antes do = com um contador de itens. Entretanto, ele coloca este item dentro da TTreeView, o que não ocorre no exemplo do Tutor.

O que eu preciso que apareça em arvore é o Organograma da Empresa, onde tenho o Supervisor como cargo Maior, depois as Diretorias, depois os Departamentos e por ultimo os Setores.

Segue em anexo o programa onde estou tentando fazer isto acontecer mas não está funcionando.

Agradeço desde já toda a ajuda.

  1. <?php
  2. /**
  3.  * WelcomeView
  4.  *
  5.  * @version    1.0
  6.  * @package    control
  7.  * @author     Pedro Isaias Soares
  8.  * @update     2022-01-31 10:00:00
  9.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  10.  * @license    http://www.adianti.com.br/framework-license
  11.  */
  12. class WelcomeView extends TPage
  13. {
  14.     
  15.     private $form;
  16.     /**
  17.      * Class constructor
  18.      * Creates the page
  19.      */
  20.     function __construct()
  21.     {
  22.         parent::__construct();
  23.         // creates the notebook
  24.         $notebook = new BootstrapNotebookWrapper( new TNotebook(400,230) );
  25.         
  26.         // creates the containers for each notebook page
  27.         $page1 = new TTable;
  28.         $page2 = new TPanel(800,600);
  29.         $page3 = new TTable;
  30.         $page4 = new TTable;
  31.         
  32.         // adds two pages in the notebook
  33.         $notebook->appendPage('Organograma CIS'$page1);
  34.         $notebook->appendPage('Ramais e e-mails'$page2);
  35.         $notebook->appendPage('Aniversariantes do Mês'$page3);
  36.         $notebook->appendPage('Aniversariantes do Próximo Mês'$page4);
  37.         // open a transaction with database 'permission'
  38.         $source TTransaction::open('permission');
  39.             
  40.         // query1 - Select in tb_san_indeta
  41.         $query1 'SELECT t1.descricao AS Supervisao, t2.descricao as Diretoria, t3.descricao as Depto, t4.descricao as Setor FROM tb_bas_area AS t1 LEFT JOIN tb_bas_area AS t2 ON t2.parent_id = t1.id LEFT JOIN tb_bas_area AS t3 ON t3.parent_id = t2.id LEFT JOIN tb_bas_area AS t4 ON t4.parent_id = t3.id WHERE t1.id = 1';
  42.                       
  43.         $filters1 = [];
  44.         $rows1 TDatabase::getData($source$query1null$filters1);      
  45. /*        
  46. Supervisao          Diretoria                                           Depto                                   Setor
  47. Superintendência    Diretoria Administrativa                            Depto de Apoio Administrativo           Setor de Almoxarifado e Patrimônio
  48. Superintendência    Diretoria Administrativa                            Depto de Apoio Administrativo           Setor de Controle de Frotas
  49. Superintendência    Diretoria Administrativa                            Depto de Apoio Administrativo           Setor de RH e Segurança do Trabalho
  50. Superintendência    Diretoria Administrativa                            Depto de Apoio Administrativo           Setor de Suporte Administrativo
  51. Superintendência    Diretoria Administrativa                            Depto Licitações                        Setor de Contratos
  52. Superintendência    Diretoria Administrativa                            Depto Licitações                        Setor de Cotações
  53. Superintendência    Diretoria Administrativa                            Depto Licitações                        Setor de Licitação
  54. Superintendência    Diretoria Comercial                                 Depto de Faturamento e Atendimento      Setor de Atendimento
  55. Superintendência    Diretoria Comercial                                 Depto de Faturamento e Atendimento      Setor de Faturamento
  56. Superintendência    Diretoria de Manutenção e Distribuição              Depto de Controle Operacional           Setor de Zeladoria
  57. Superintendência    Diretoria Técnica                                   Depto de Engenharia                     Setor de Cadastro e Diretrizes
  58. Superintendência    Diretoria Técnica                                   Depto de Engenharia                     Setor de Projeto e Obras
  59. Superintendência    Diretoria de Manutenção e Distribuição              Depto de Manutenção de Redes            NULL
  60. Superintendência    Diretoria de Manutenção e Distribuição              Depto de Manutenção Eletromecânica      NULL
  61. Superintendência    Diretoria de Tratamento, Qualidade e Meio Ambiente  Depto de Controle de Qualidade          NULL
  62. Superintendência    Diretoria de Tratamento, Qualidade e Meio Ambiente  Depto de Meio Ambiente                  NULL
  63. Superintendência    Diretoria de Tratamento, Qualidade e Meio Ambiente  Depto de Tratamento de Água             NULL
  64. Superintendência    Diretoria de Tratamento, Qualidade e Meio Ambiente  Depto de Tratamento de Esgoto           NULL
  65. Superintendência    Diretoria Financeira                                Depto de Planejamento                   NULL
  66. Superintendência    Diretoria Financeira                                Setor de Contabilidade e Tesouraria     NULL
  67. Superintendência    Diretoria Jurídica                                  Setor Administrativo e Contencioso      NULL
  68. Superintendência    Diretoria Jurídica                                  Setor de Dívida Ativa                   NULL
  69. Superintendência    Diretoria Jurídica                                  Setor de Ouvidoria                      NULL
  70. Superintendência    Diretoria Técnica                                   Depto de Controle e Redução de Perdas   NULL
  71. Superintendência    Diretoria de Comunicação                            NULL                                    NULL
  72. Superintendência    Diretoria de Controladoria Interna                  NULL                                    NULL
  73. Superintendência    Diretoria de Resíduos Sólidos                       NULL                                    NULL
  74.         // define the tree data
  75.         $data = array();
  76.         $data['Brazil']['RS'][10] = 'Lajeado';
  77.         $data['Brazil']['RS'][20] = 'Cruzeiro do Sul';
  78.         $data['Brazil']['RS'][30] = 'Porto Alegre';
  79.         $data['Brazil']['SP'][40] = 'São Paulo';
  80.         $data['Brazil']['SP'][50] = 'Osasco';
  81.         $data['Brazil']['MG'][60] = 'Belo Horizonte';
  82.         $data['Brazil']['MG'][70] = 'Ipatinga';
  83. */        
  84.         
  85.         $data = array();
  86.         $ncnt=0;
  87.         foreach ($rows1 as $row1)
  88.         {
  89.             $ncnt++;
  90.             if(empty($row1['Supervisao'])) {
  91.                 $row1['Supervisao']='Sem Supervisao';
  92.             }
  93.             if(empty($row1['Diretoria'])) {
  94.                 $row1['Diretoria']='Sem Diretoria';
  95.             }
  96.             if(empty($row1['Depto'])) {
  97.                 $row1['Depto']='Sem Departamento';
  98.             }
  99.             if(empty($row1['Setor'])) {
  100.                 $row1['Setor']='Sem Setor';
  101.             }
  102.             $data [$row1['Supervisao']] [$row1['Diretoria']] [$row1['Depto']] [$ncnt]=[$row1['Setor']];
  103.         }
  104.         
  105.         
  106.         $data1 = array();
  107.         // define the tree data
  108.         $data1['Brazil']['RS']['1'] = 'Lajeado';
  109.         $data1['Brazil']['RS']['2'] = 'Cruzeiro do Sul';
  110.         $data1['Brazil']['RS']['3'] = 'Porto Alegre';
  111.         $data1['Brazil']['SP']['4'] = 'São Paulo';
  112.         $data1['Brazil']['SP']['5'] = 'Osasco';
  113.         $data1['Brazil']['MG']['6'] = 'Belo Horizonte';
  114.         $data1['Brazil']['MG']['7'] = 'Ipatinga';
  115.         
  116.         
  117.         
  118.         // creates a simple form
  119.         $this->form = new BootstrapFormBuilder('form_test');
  120.         $this->form->setFormTitle('Form');
  121.         // creates the form fields
  122.         $key   = new TEntry('key');
  123.         $value = new TEntry('value');
  124.         
  125.         $this->form->addFields( [new TLabel('Key')],   [$key] )->layout = ['col-sm-4','col-sm-8'];
  126.         $this->form->addFields( [new TLabel('Value')], [$value] )->layout = ['col-sm-4','col-sm-8'];
  127.         // scroll around the treeview
  128.         $scroll = new TScroll;
  129.         $scroll->setSize(800600);
  130.         $scroll->style 'margin-right: 5px';
  131.         
  132.         // creates the treeview
  133.         $treeview = new TTreeView;
  134.         $treeview->setSize(300);
  135.         $treeview->setItemAction(new TAction(array($this'onSelect')));        
  136.         $treeview->fromArray($data); // fill the treeview
  137. //        $treeview->collapse();
  138.         $scroll->add($treeview);
  139.         // creates the treeview
  140.         $treeview1 = new TTreeView;
  141.         $treeview1->setSize(300);
  142.         $treeview1->setItemAction(new TAction(array($this'onSelect')));        
  143.         $treeview1->fromArray($data1); // fill the treeview
  144. //        $treeview->collapse();
  145.         $scroll->add($treeview1);
  146.         // pack treeview and form
  147.         $hbox THBox::pack($scroll$this->form);
  148.         $hbox->style 'display:inline-flex';
  149.         $page1->add($hbox);
  150.         
  151.         ## fields for the page 2 ##
  152.         $html1 = new THtmlRenderer('app/resources/system_welcome_pt.html');
  153.         // replace the main section variables
  154.         $html1->enableSection('main', array());
  155.         $panel1 = new TPanelGroup('Bem-vindo(a)! '.TSession::getValue('username'));
  156.         $panel1->add($html1);
  157.         
  158.         $page2->add($panel1);
  159.         ## fields for the page 3 ##
  160.         
  161.         // creates the notebook
  162.         $subnotebook = new TNotebook(250160);
  163.         $subnotebook->appendPage('new page1', new TLabel('test1'));
  164.         $subnotebook->appendPage('new page2', new TText('test2'));
  165.         
  166.         $row $page3->addRow();
  167.         $row->addCell($subnotebook);
  168.         
  169.         // wrap the page content using vertical box
  170.         $vbox = new TVBox;
  171.         $vbox->style 'width: 100%';
  172. //        $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  173.         $vbox->add($notebook);
  174.         parent::add($vbox);
  175.     }
  176.     /**
  177.      * Executed when the user clicks at a tree node
  178.      * @param $param URL parameters containing key and value
  179.      */
  180.     public static function onSelect($param)
  181.     {
  182.         $obj = new StdClass;
  183.         $obj->key $param['key']; // get node key (index)
  184.         $obj->value $param['value']; // get node value (contend)
  185.         
  186.         // fill the form with this object attributes
  187.         TForm::sendData('form_test'$obj);
  188.     }
  189.     
  190. }
  191. ?>


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 (3)


NR

Você está atribuindo um array à matriz quando deveria atribuir uma string:
  1. <?php
  2. //$data [$row1['Supervisao']] [$row1['Diretoria']] [$row1['Depto']] [$ncnt] = [$row1['Setor']];
  3. $data [$row1['Supervisao']] [$row1['Diretoria']] [$row1['Depto']] [$ncnt] = $row1['Setor'];
  4. ?>
NR

Acho que o anterior não enviou o email...
PS

Boa Tarde, Nataniel,

Valeu pela dica. Falha de iniciante. Muito obrigado!!!