Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Form de pesquisa e um grid no notebook Estou em fase de aprendizagem do framework e agora esbarrei na criação de um notebook com um form de pesquia e um datagrid na mesma aba. Aprece somente o datagrid o form de pesquisa nem chega a aprecer na tela. Podem me ajudar? ...
WS
Form de pesquisa e um grid no notebook  
Fechado
Estou em fase de aprendizagem do framework e agora esbarrei na criação de um notebook com um form de pesquia e um datagrid na mesma aba.
Aprece somente o datagrid o form de pesquisa nem chega a aprecer na tela. Podem me ajudar?

  1. <?php
  2. class EspecialidadeForm extends TPage {
  3.     private $form_pesquisa;
  4.     private $form_cadastro;    
  5.     private $datagrid;
  6.     private $notebook;    
  7.     
  8.     function __construct() {
  9.         parent::__construct();
  10.     
  11.         // Formularios
  12.         $this->form_pesquisa = new TQuickForm('form_pesquisa');
  13.         $this->form_cadastro = new TQuickForm('form_cadastro');
  14.         
  15.         // Cria notebook
  16.         $this->notebook = new TNotebook(500,250);
  17.         
  18.         // Form Pesquisa  
  19.         $this->form_pesquisa->addQuickField('Descrição', new TEntry('descricao'), 180);
  20.         $this->form_pesquisa->addQuickAction('Pesquisar', new TAction(array($this,'onSearch')),'ico_find.png');
  21.         
  22.         // Datagrid        
  23.         $this->datagrid = new TQuickGrid();
  24.         $this->datagrid->addQuickColumn('Descrição','descricao');    
  25.         $this->datagrid->addQuickAction('Editar', new TDataGridAction(array($this,'onEdit')),'id','ico_edit.png');
  26.         $this->datagrid->addQuickAction('Delete', new TDataGridAction(array($this,'onDelete')),'id','ico_delete.png');
  27.         $this->datagrid->createModel();    
  28.         self::onReload();
  29.         
  30.         // Adiciona datagrid no form e o form no notebook
  31.         $this->form_pesquisa->add($this->datagrid);
  32.         $this->notebook->appendPage('Pesquisa',$this->form_pesquisa);        
  33.         
  34.         // Form Cadastro
  35.         $this->form_cadastro->addQuickField('id',new TEntry('id'),10);
  36.         $this->form_cadastro->addQuickField('Descrição',new TEntry('descricao'),100);
  37.         $this->form_cadastro->addQuickAction('Salvar', new TAction(array($this,'onSave')),'ico_save.png');
  38.         $this->notebook->appendPage('Cadastro',$this->form_cadastro);
  39.         
  40.         parent::add($this->notebook);
  41.     }
  42. ?>

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (5)


JN

Bom dia,

Cria uma tabela para organizar o form e a datagrid com adição de linhas.
Tem mais formas de se fazer, o que vc precisa é um container para adicionar os componentes nele.
Verifica no Tutor no menu Presentation->Containers.

adianti.com.br/framework_files/tutor/index.php?class=HomeView

Abraço.
João Renato
JN

  1. <?php
  2. 32        // Adiciona datagrid no form e o form no notebook
  3. 33        $this->form_pesquisa->add($this->datagrid);
  4. 34        $this->notebook->appendPage('Pesquisa',$this->form_pesquisa);        
  5. ?>


Usando uma tabela, você adiciona o form e a datagrid a tabela criada e adiciona a tabela no notebook.

  1. <?php
  2.     $tabela = new TTable;
  3.     
  4.     $linha=$tabela->addRow();
  5.     $linha->addCell($this->form_pesquisa);
  6.     $linha=$tabela->addRow();
  7.     $linha->addCell($this->datagrid);
  8.     $this->notebook->appendPage('Pesquisa'$tabela);
  9. ?>


Como havia mencionado antes, esta é uma forma de se fazer...

Flw
FC

  1. <?php
  2.  $this->notebook->add($this->form);
  3.  $this->notebook->add($this->datagrid);
  4.   parent::add($this->notebook);
  5. ?>

acho que somente isso resolveria.
PD

Oi Wesley,

O pessoal está correto, não é necessário adicionar a datagrid dentro do form. Não é função do TQuickForm receber uma datagrid, somente campos. Além disso, sugiro deixar o carregamento da datagrid (onReload) para o método show(), que é a última coisa a ser executada, como nesse exemplo a seguir:
www.adianti.com.br/doc-framework-Organization-ManualControls-Complet

abs,
Pablo
WS

Correto, obrigado pelos esclarecimentos João, Felipe e Pablo.