A melhor parceira de TI para o seu negócio English version

Framework docs

Organização > Controladores padrão > Formulário padrão

Conheça mais sobre com o livro:

  • Instalação e configuração;
  • Modelos, persistência e BD;
  • Componentes de apresentação;
  • Cadastros e listagens;
  • Logins, permissões, relatórios;
  • Desenvolvimento com Studio Pro.
Ver detalhes...

Este exemplo demonstra como podemos manipular um formulário utilizando um controlador-padrão. Um controlador-padrão é uma subclasse de TPage que já possui a implementação de uma série de métodos comuns para manipular formulários e datagrids.

A classe TStandardForm é um controlador-padrão utilizado para construir rapidamente controladores de formulários. No lugar de escrever métodos como onSave() e onEdit(), a classe TStandardForm já possui seus próprios métodos genéricos onSave() e onEdit() que realizam operações básicas relativas à formulários. Para funcionar adequadamente e realizar as operações desejadas, estes métodos genéricos precisam saber algumas informações básicas como o nome da base de dados e o nome do Active Record que irá ser manipulado.

Importante: O código-fonte demonstrado neste exemplo pode ser em grande parte gerado automaticamente pelo Adianti Studio Pro. O Adianti Studio Pro possui um gerador de código, que permite gerar formulários e datagrids de maneira rápida e ágil. Com apenas alguns cliques, a IDE gera as classes e os comandos necessários para manipular registros, baseando-se nas informações das tabelas do banco de dados.

Clique aqui para
demonstração real

Exemplo

  1. <?php
  2. /**
  3.  * StandardFormView Registration
  4.  *
  5.  * @version    1.0
  6.  * @package    samples
  7.  * @subpackage tutor
  8.  * @author     Pablo Dall'Oglio
  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 StandardFormView extends TStandardForm
  13. {
  14.     protected $form// form
  15.     
  16.     /**
  17.      * Class constructor
  18.      * Creates the page and the registration form
  19.      */
  20.     function __construct()
  21.     {
  22.         parent::__construct();
  23.         
  24.         parent::setDatabase('samples');    // defines the database
  25.         parent::setActiveRecord('City');   // defines the active record
  26.         
  27.         // creates the form
  28.         $this->form = new TQuickForm('form_City');
  29.         $this->form->class 'tform'// CSS class
  30.         $this->form->style 'width: 100%';
  31.         
  32.         // define the form title
  33.         $this->form->setFormTitle('Standard Form');
  34.         
  35.         // create the form fields
  36.         $id       = new TEntry('id');
  37.         $name     = new TEntry('name');
  38.         $state_id = new TDBCombo('state_id''samples''State''id''name');
  39.         $id->setEditable(FALSE);
  40.         
  41.         // add the form fields
  42.         $this->form->addQuickField('ID'$id,  '30%');
  43.         $this->form->addQuickField('Name'$name,  '70%', new TRequiredValidator);
  44.         $this->form->addQuickField('State'$state_id,  '70%', new TRequiredValidator);
  45.         
  46.         // define the form action
  47.         $this->form->addQuickAction('Save', new TAction(array($this'onSave')), 'fa:save green');
  48.         $this->form->addQuickAction('Clear',  new TAction(array($this'onClear')), 'fa:eraser red');
  49.         $this->form->addQuickAction('Listing',  new TAction(array('StandardDataGridView''onReload')), 'fa:table blue');
  50.         // wrap the page content using vertical box
  51.         $vbox = new TVBox;
  52.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  53.         $vbox->add($this->form);
  54.         parent::add($vbox);
  55.     }
  56. }