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


Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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!!!