Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Como usar o set focus para deixar o cursor piscando no 1o campo? Como usar o set focus para deixar o cursor piscando no 1o campo? Eu sei que muita gente já sabe fazer isso, sei que este assunto já está bem mastigado. Uma vez postaram esta dúvida no fórum, eu tentei colocar em prática mas não consegui. Disseram para mexer com configurações e scripts e terminei me perdendo todo. Se houvesse apenas uma linha feita em framework e que pudesse inserir no f...
AM
Como usar o set focus para deixar o cursor piscando no 1o campo?  
Fechado
Como usar o set focus para deixar o cursor piscando no 1o campo?
Eu sei que muita gente já sabe fazer isso, sei que este assunto já está bem mastigado. Uma vez postaram esta dúvida no fórum, eu tentei colocar em prática mas não consegui. Disseram para mexer com configurações e scripts e terminei me perdendo todo.
Se houvesse apenas uma linha feita em framework e que pudesse inserir no form especificando o campo que receberá o fócus, seria muito mais fácil.

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


WJ

$campo = TEntry("nomedomeucampo"); $campo->setPropriety('onfocus","funcaoJs()"); TScript::create(" funcaoJs(){ //aqui vem sua funcao pra dar o efeito de pica.. ou qualquer outra coisa }")


funcaoJs facilmente encontrada na net...
do jeito q vc precisa
AM

Esta sua postagem só me deixou com muitas dúvidas.
1- Você colocou no seu código isto: 'onfocus" Me parece que começa com um apóstrofo e termina com aspas, afinal, é apóstrofo ou aspas? Deve mesmo colocar isto para funcionar?

2- Antes de " funcaoJs() , você colocou aspas, acho que está errado, pois eu inserir no código da minha página e está tudo pintado de rosa, tem algo errado ai.

3- Onde eu coloco esta função? TScript::create , já que se tratas de um script, não deveria ficar dentro do arquivo: app/lib/include/application.js

Estou todo perdido, se vc fosse mais direto, eu agradeceria.
RR

Alex, eu fiz assim no meu: coloque diretamente dentro do "__construct()" do Controller do seu formulário:

$script = new TElement('script'); $script->type = 'text/javascript'; $script->add('$("#nomedocampo").focus();');
AM

Infelizmente deu errado. Eu testei no Navegador Google Chrome, versão: 43.0.2357.130 m

Que navegador você usa?
RR

Estranho... aqui funciona no Chrome e no Firefox.

Bom, esse código é de um sistema que fiz com a versão 1.0.3 do framework, ainda não testei na 2.0, talvez tenha havido alguma mudança na nova versão.

Vou dar uma olhada com calma aqui.
RR

Alex, acho que esqueci de acrescentar uma linha:

  1. <?php
  2. $script = new TElement('script');
  3. $script->type 'text/javascript';
  4. $script->add('$("#nomedocampo").focus();'); 
  5. $table->addRow()->addCell($script);
  6. ?>
RR

Isso aí, sem o
  1. <?php $table->addRow()->addCell($script); ?>
realmente não funciona!
AM

Ainda está dando erro na linha 13, a linha 13 tem isto abaixo:
$table->addRow()->addCell($script);

As mensagens de erro são duas, veja:
Nota: Undefined variable: mesa em C: wamp www Filme app Control Cadasto FilmeForm.class.php na linha 13

Erro fatal: Chamada a uma addRow função de membro () em um não-objeto em C: wamp www Filme app Control Cadasto FilmeForm.class.php na linha 13


Veja ai a parte inicial do meu código, veja ai se você está vendo o erro.

  1. <?php
  2. class FilmeForm extends TPage
  3. {
  4.     private $form;
  5.     
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.      
  10.         $script = new TElement('script');
  11.         $script->type 'text/javascript';
  12.         $script->add('$("titulo").focus();'); 
  13.         $table->addRow()->addCell($script);
  14.       
  15.         $this->form = new TQuickForm('form_filme');
  16.         $this->form->setFormTitle('Cadastro de Filmes2');
  17.         $this->form->class 'tform';
  18.         $this->form->style 'width: 700px';
  19.                 
  20.         $id    = new TEntry('id');
  21.         $titulo = new TEntry('titulo');
  22.         $diretor = new TEntry('diretor');
  23.         $idsuporte    = new TDBCombo('idsuporte''teste''Suporte''id''idsuporte');
  24.         $idgenero     = new TDBCombo('idgenero''teste''Genero''id''idgenero');
  25.         $dtlcto = new TDate('dtlcto');
  26.         $duracao = new TEntry('duracao');
RR

Alex, acho que é porque estou usando o componente TTable para organizar os elementos.

Segue o meu código na íntegra:

<?
class ClienteFormulario extends TPage
{
private $form; // formulário

/**
* Construtor da Classe
* Cria a página e o formulário
*/
public function __construct()
{
parent::__construct();

// cria o formulário
$this->form = new TForm('form_Cliente');
$this->form->class = 'tform'; // CSS class
$this->form->style = 'width: 500px';

// cria a tabela
$table = new TTable;
$table->width = '100%';
$table_buttons = new TTable;

// adiciona a tabela dentro do formulário
$this->form->add($table);

// cria os campos do formulário
$id = new TEntry('id');
$nome = new TEntry('nome');
$cpf = new TEntry('cpf');
$rg = new TEntry('rg');
$matricula = new TEntry('matricula');
$data_nascimento = new TDate('data_nascimento');
$sexo = new TCombo('sexo');
$endereco = new TEntry('endereco');
$bairro = new TEntry('bairro');
$cidade = new TEntry('cidade');
$id_estado = new TDBCombo('id_estado', 'almoxarifado', 'Estado', 'id', 'nome');
$cep = new TEntry('cep');
$telefone = new TEntry('telefone');
$email = new TEntry('email');
$id_setor = new TDBCombo('id_setor', 'almoxarifado', 'Setor', 'id', 'nome');
$obs = new TText('obs');

// define os tamanhos
$id->setSize(100);
$nome->setSize(250);
$cpf->setSize(150);
$rg->setSize(150);
$matricula->setSize(150);
$data_nascimento->setSize(100);
$sexo->setSize(100);
$endereco->setSize(250);
$bairro->setSize(150);
$cidade->setSize(150);
$id_estado->setSize(150);
$cep->setSize(100);
$telefone->setSize(150);
$email->setSize(200);
$id_setor->setSize(300);
$obs->setSize(300, 100);

$id->setEditable(FALSE);
$cpf->setMask('999.999.999-99');
$matricula->setMask('9999999');
$data_nascimento->setMask('dd/mm/yyyy');
$cep->setMask('99999-999');
$telefone->setMask("(99)9999-9999");
$sexo->addItems(array(1 => 'MASCULINO', 2 => 'FEMININO'));

// validação dos campos
$nome->addValidation('NOME', new TRequiredValidator); // campo obrigatório
$matricula->addValidation('MATRICULA', new TRequiredValidator); // campo obrigatório
$email->addValidation('E-MAIL', new TRequiredValidator); // campo obrigatório
$email->addValidation('E-MAIL', new TEmailValidator); // email válido
$id_setor->addValidation('SETOR', new TRequiredValidator); // campo obrigatório

// adiciona jQuery para máscara e focus
$nome->id = 'nome';
$rg->id = 'rg';
$endereco->id = 'endereco';
$bairro->id = 'bairro';
$cidade->id = 'cidade';
$script = new TElement('script');
$script->type = 'text/javascript';
$script->add('
$("#nome").focus();
$("#nome").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
$("#rg").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
$("#endereco").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
$("#bairro").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
$("#cidade").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
');
$table->addRow()->addCell($script);

// define o título do formulário
$row = $table->addRow();
$row->class = 'tformtitle';
$cell = $row->addCell(new TLabel('Cadastro de Clientes'));
$cell->colspan = 2;

// adiciona os campos do formulário
$table->addRowSet(new TLabel('ID:'), $id);
$table->addRowSet(new TLabel('Nome:'), $nome);
$table->addRowSet(new TLabel('CPF:'), $cpf);
$table->addRowSet(new TLabel('RG:'), $rg);
$table->addRowSet(new TLabel('Matrícula:'), $matricula);
$table->addRowSet(new TLabel('Nascimento:'), $data_nascimento);
$table->addRowSet(new TLabel('Sexo:'), $sexo);
$table->addRowSet(new TLabel('Endereço:'), $endereco);
$table->addRowSet(new TLabel('Bairro:'), $bairro);
$table->addRowSet(new TLabel('Cidade:'), $cidade);
$table->addRowSet(new TLabel('Estado:'), $id_estado);
$table->addRowSet(new TLabel('CEP:'), $cep);
$table->addRowSet(new TLabel('Telefone:'), $telefone);
$table->addRowSet(new TLabel('E-mail:'), $email);
$table->addRowSet(new TLabel('Setor:'), $id_setor);
$table->addRowSet(new TLabel('Observação:'), $obs);

// cria o botão de ação (salvar)
$save_button = new TButton('save');
$save_button->setAction(new TAction(array($this, 'onSave')), 'Salvar');
$save_button->setImage('ico_save.png');

// cria o botão de ação (novo)
$new_button = new TButton('new');
$new_button->setAction(new TAction(array($this, 'onEdit')), 'Novo');
$new_button->setImage('ico_new.png');

// cria o botão de ação (listar)
$goto_button = new TButton('list');
$goto_button->setAction(new TAction(array('ClienteListagem', 'onReload')), 'Listar');
$goto_button->setImage('ico_datagrid.png');

// adiciona uma linha para a ação do formulário
$row = $table_buttons->addRow();
$row->addCell($save_button);
$row->addCell($new_button);
$row->addCell($goto_button);

// adiciona uma linha para a ação do formulário
$row = $table->addRow();
$row->class = 'tformaction';
$cell=$row->addCell($table_buttons);
$cell->colspan = 2;

// define quais são os campos do formulário
$this->form->setFields(array($id, $nome, $cpf, $rg, $matricula, $data_nascimento, $sexo, $endereco, $bairro, $cidade, $id_estado, $cep, $telefone, $email, $id_setor, $obs, $save_button, $new_button, $goto_button));

// empacota o conteúdo da página usando uma caixa vertical
$vbox = new TVBox;
$vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
$vbox->add($this->form);

parent::add($vbox);
}

/**
* método onSave()
* Executado quando o usuário clicar no botão salvar
*/
public function onSave()
{
try
{
// valida o formulário
$this->form->validate();

// abre uma transação com o banco de dados 'almoxarifado'
TTransaction::open('almoxarifado');

$object = $this->form->getData('Cliente'); // pega os dados do formulário no Active Record Cliente
$object->data_nascimento = TDate::date2us($object->data_nascimento); // converte a data para o formato yyyy-mm-dd
$object->store(); // armazena o objeto

// preenche o formulário com os dados do Active Record
$object->data_nascimento = TDate::date2br($object->data_nascimento); // converte a data para o formato dd/mm/yyyy
$this->form->setData($object);

TTransaction::close(); // fecha a transação

// mostra uma mensagem de sucesso
new TMessage('info', 'Registro Salvo!');
// recarrega a listagem
}
catch (Exception $e) // no caso de exceção
{
// mostra a mensagem de erro da exceção
new TMessage('error', 'ERRO!
' . $e->getMessage());
// apaga todas as operações pendentes
TTransaction::rollback();
}
}

/**
* método onEdit()
* Executado quando o usuário clicar no botão Editar da datagrid
*/
public function onEdit($param)
{
try
{
if (isset($param['key']))
{
// pega o parâmetro $key
$key = $param['key'];

TTransaction::open('almoxarifado'); // abre uma transação com a base de dados 'almoxarifado'
$object = new Cliente($key); // instancia um objeto Cliente
$object->data_nascimento = TDate::date2br($object->data_nascimento); // converte a data para o formato dd/mm/yyyy
$this->form->setData($object); // preenche o formulário com os dados do Active Record Cliente
TTransaction::close(); // fecha a transação
}
else
{
$this->form->clear();
}
}
catch (Exception $e) // no caso de exceção
{
// mostra a mensagem de erro da exceção
new TMessage('error', 'Error ' . $e->getMessage());
// apaga todas as operações pendentes
TTransaction::rollback();
}
}
}
?>
RR

Código colorido:

  1. <?php
  2. class ClienteFormulario extends TPage
  3. {
  4.     private $form// formulário
  5.     
  6.     /**
  7.      * Construtor da Classe
  8.      * Cria a página e o formulário
  9.      */
  10.     public function __construct()
  11.     {
  12.         parent::__construct();
  13.         
  14.         // cria o formulário
  15.         $this->form = new TForm('form_Cliente');
  16.         $this->form->class 'tform'// CSS class
  17.         $this->form->style 'width: 500px';
  18.         
  19.         // cria a tabela
  20.         $table = new TTable;
  21.         $table->width '100%';
  22.         $table_buttons = new TTable;
  23.         
  24.         // adiciona a tabela dentro do formulário
  25.         $this->form->add($table);
  26.         
  27.         // cria os campos do formulário
  28.         $id              = new TEntry('id');
  29.         $nome            = new TEntry('nome');
  30.         $cpf             = new TEntry('cpf');
  31.         $rg              = new TEntry('rg');
  32.         $matricula       = new TEntry('matricula');
  33.         $data_nascimento = new TDate('data_nascimento');
  34.         $sexo            = new TCombo('sexo');
  35.         $endereco        = new TEntry('endereco');
  36.         $bairro          = new TEntry('bairro');
  37.         $cidade          = new TEntry('cidade');
  38.         $id_estado       = new TDBCombo('id_estado''almoxarifado''Estado''id''nome');
  39.         $cep             = new TEntry('cep');
  40.         $telefone        = new TEntry('telefone');
  41.         $email           = new TEntry('email');
  42.         $id_setor        = new TDBCombo('id_setor''almoxarifado''Setor''id''nome');
  43.         $obs             = new TText('obs');
  44.         
  45.         // define os tamanhos
  46.         $id->setSize(100);
  47.         $nome->setSize(250);
  48.         $cpf->setSize(150);
  49.         $rg->setSize(150);
  50.         $matricula->setSize(150);
  51.         $data_nascimento->setSize(100);
  52.         $sexo->setSize(100);
  53.         $endereco->setSize(250);
  54.         $bairro->setSize(150);
  55.         $cidade->setSize(150);
  56.         $id_estado->setSize(150);
  57.         $cep->setSize(100);
  58.         $telefone->setSize(150);
  59.         $email->setSize(200);
  60.         $id_setor->setSize(300);
  61.         $obs->setSize(300100);
  62.         
  63.         $id->setEditable(FALSE);
  64.         $cpf->setMask('999.999.999-99');
  65.         $matricula->setMask('9999999');
  66.         $data_nascimento->setMask('dd/mm/yyyy');
  67.         $cep->setMask('99999-999');
  68.         $telefone->setMask("(99)9999-9999");
  69.         $sexo->addItems(array(=> 'MASCULINO'=> 'FEMININO'));
  70.         
  71.         // validação dos campos
  72.         $nome->addValidation('NOME', new TRequiredValidator); // campo obrigatório
  73.         $matricula->addValidation('MATRICULA', new TRequiredValidator); // campo obrigatório
  74.         $email->addValidation('E-MAIL', new TRequiredValidator); // campo obrigatório
  75.         $email->addValidation('E-MAIL', new TEmailValidator); // email válido
  76.         $id_setor->addValidation('SETOR', new TRequiredValidator); // campo obrigatório
  77.         
  78.         // adiciona jQuery para máscara e focus
  79.         $nome->id 'nome';
  80.         $rg->id 'rg';
  81.         $endereco->id 'endereco';
  82.         $bairro->id 'bairro';
  83.         $cidade->id 'cidade';
  84.         $script = new TElement('script');
  85.         $script->type 'text/javascript';
  86.         $script->add('
  87.         $("#nome").focus();
  88.         $("#nome").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  89.         $("#rg").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  90.         $("#endereco").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  91.         $("#bairro").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  92.         $("#cidade").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  93.         ');
  94.         $table->addRow()->addCell($script);
  95.         
  96.         // define o título do formulário
  97.         $row $table->addRow();
  98.         $row->class 'tformtitle';
  99.         $cell $row->addCell(new TLabel('Cadastro de Clientes'));
  100.         $cell->colspan 2;
  101.         
  102.         // adiciona os campos do formulário
  103.         $table->addRowSet(new TLabel('ID:'), $id);
  104.         $table->addRowSet(new TLabel('Nome:'), $nome);
  105.         $table->addRowSet(new TLabel('CPF:'), $cpf);
  106.         $table->addRowSet(new TLabel('RG:'), $rg);
  107.         $table->addRowSet(new TLabel('Matrícula:'), $matricula);
  108.         $table->addRowSet(new TLabel('Nascimento:'), $data_nascimento);
  109.         $table->addRowSet(new TLabel('Sexo:'), $sexo);
  110.         $table->addRowSet(new TLabel('Endereço:'), $endereco);
  111.         $table->addRowSet(new TLabel('Bairro:'), $bairro);
  112.         $table->addRowSet(new TLabel('Cidade:'), $cidade);
  113.         $table->addRowSet(new TLabel('Estado:'), $id_estado);
  114.         $table->addRowSet(new TLabel('CEP:'), $cep);
  115.         $table->addRowSet(new TLabel('Telefone:'), $telefone);
  116.         $table->addRowSet(new TLabel('E-mail:'), $email);
  117.         $table->addRowSet(new TLabel('Setor:'), $id_setor);
  118.         $table->addRowSet(new TLabel('Observação:'), $obs);
  119.         // cria o botão de ação (salvar)
  120.         $save_button = new TButton('save');
  121.         $save_button->setAction(new TAction(array($this'onSave')), 'Salvar');
  122.         $save_button->setImage('ico_save.png');
  123.         
  124.         // cria o botão de ação (novo)
  125.         $new_button = new TButton('new');
  126.         $new_button->setAction(new TAction(array($this'onEdit')), 'Novo');
  127.         $new_button->setImage('ico_new.png');
  128.         
  129.         // cria o botão de ação (listar)
  130.         $goto_button = new TButton('list');
  131.         $goto_button->setAction(new TAction(array('ClienteListagem''onReload')), 'Listar');
  132.         $goto_button->setImage('ico_datagrid.png');
  133.         // adiciona uma linha para a ação do formulário
  134.         $row $table_buttons->addRow();
  135.         $row->addCell($save_button);
  136.         $row->addCell($new_button);
  137.         $row->addCell($goto_button);
  138.         
  139.         // adiciona uma linha para a ação do formulário
  140.         $row $table->addRow();
  141.         $row->class 'tformaction';
  142.         $cell=$row->addCell($table_buttons);
  143.         $cell->colspan 2;
  144.         // define quais são os campos do formulário
  145.         $this->form->setFields(array($id$nome$cpf$rg$matricula$data_nascimento$sexo$endereco$bairro$cidade$id_estado$cep$telefone$email$id_setor$obs$save_button$new_button$goto_button));
  146.         // empacota o conteúdo da página usando uma caixa vertical
  147.         $vbox = new TVBox;
  148.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  149.         $vbox->add($this->form);
  150.         parent::add($vbox);
  151.     }
  152.     /**
  153.      * método onSave()
  154.      * Executado quando o usuário clicar no botão salvar
  155.      */
  156.     public function onSave()
  157.     {
  158.         try
  159.         {
  160.             // valida o formulário
  161.             $this->form->validate();
  162.             
  163.             // abre uma transação com o banco de dados 'almoxarifado'
  164.             TTransaction::open('almoxarifado');
  165.             
  166.             $object $this->form->getData('Cliente'); // pega os dados do formulário no Active Record Cliente
  167.             $object->data_nascimento TDate::date2us($object->data_nascimento); // converte a data para o formato yyyy-mm-dd
  168.             $object->store();                          // armazena o objeto
  169.             
  170.             // preenche o formulário com os dados do Active Record
  171.             $object->data_nascimento TDate::date2br($object->data_nascimento); // converte a data para o formato dd/mm/yyyy
  172.             $this->form->setData($object);
  173.             
  174.             TTransaction::close();  // fecha a transação
  175.             
  176.             // mostra uma mensagem de sucesso
  177.             new TMessage('info''Registro Salvo!');
  178.             // recarrega a listagem
  179.         }
  180.         catch (Exception $e// no caso de exceção
  181.         {
  182.             // mostra a mensagem de erro da exceção
  183.             new TMessage('error''<b>ERRO!</b><br> ' $e->getMessage());
  184.             // apaga todas as operações pendentes
  185.             TTransaction::rollback();
  186.         }
  187.     }
  188.     
  189.     /**
  190.      * método onEdit()
  191.      * Executado quando o usuário clicar no botão Editar da datagrid
  192.      */
  193.     public function onEdit($param)
  194.     {
  195.         try
  196.         {
  197.             if (isset($param['key']))
  198.             {
  199.                 // pega o parâmetro $key
  200.                 $key $param['key'];
  201.                 
  202.                 TTransaction::open('almoxarifado'); // abre uma transação com a base de dados 'almoxarifado'
  203.                 $object = new Cliente($key);        // instancia um objeto Cliente
  204.                 $object->data_nascimento TDate::date2br($object->data_nascimento); // converte a data para o formato dd/mm/yyyy
  205.                 $this->form->setData($object);      // preenche o formulário com os dados do Active Record Cliente
  206.                 TTransaction::close();              // fecha a transação
  207.             }
  208.             else
  209.             {
  210.                 $this->form->clear();
  211.             }
  212.         }
  213.         catch (Exception $e// no caso de exceção
  214.         {
  215.             // mostra a mensagem de erro da exceção
  216.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  217.             // apaga todas as operações pendentes
  218.             TTransaction::rollback();
  219.         }
  220.     }
  221. }
  222. ?>
AM

Eu não precisei adicionar uma table no meu form, veja ai o meu código fonte da tela de cadastro, como eu faria para adicionar o set focus?

  1. <?php
  2. class SalarioForm extends TPage
  3. {
  4.     private $form;
  5.     
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         // A linha abaixo executa um script em java,
  10.         // substituindo o tab pelo enter.
  11.         // Mas não funciona.
  12.         parent::include_js('app/lib/include/application.js');
  13.        
  14.         $this->form = new TQuickForm('form_salario');
  15.         $this->form->setFormTitle('Cadastro de Recibo de Salário');
  16.         $this->form->class 'tform';
  17.         $this->form->style 'width: 800px';
  18.         
  19.         $id      = new TEntry('id');
  20.         $nome    = new TEntry('nome');
  21.         $empresa = new TEntry('empresa');
  22.         
  23.         $dia1 = new TEntry('dia1');
  24.         $mes1 = new TEntry('mes1');
  25.         $ano1 = new TEntry('ano1');
  26.         $dia2 = new TEntry('dia2');
  27.         $mes2 = new TEntry('mes2');
  28.         $ano2 = new TEntry('ano2');
  29.                         
  30.         $salario  = new TEntry('salario');
  31.         $extras   = new TEntry('extras');
  32.         $rendi1   = new TEntry('rendi1');        
  33.         $rendi2   = new TEntry('rendi2');
  34.         $rendi3   = new TEntry('rendi3');
  35.         $rendi1vr = new TEntry('rendi1vr');        
  36.         $rendi2vr = new TEntry('rendi2vr');
  37.         $rendi3vr = new TEntry('rendi3vr');
  38.         $soma1    = new TEntry('soma1');
  39.         
  40.         $inss    = new TEntry('inss');
  41.         $imposto = new TEntry('imposto');
  42.         $adianta = new TEntry('adianta');        
  43.         $dedu1   = new TEntry('dedu1');
  44.         $dedu2   = new TEntry('dedu2');
  45.         $dedu1vr = new TEntry('dedu1vr');                
  46.         $dedu2vr = new TEntry('dedu2vr');
  47.         $soma2   = new TEntry('soma2');
  48.         
  49.         $familia  = new TEntry('familia');        
  50.         $liquido  = new TEntry('liquido');
  51.         $extenso1 = new TEntry('extenso1');
  52.         $extenso2 = new TEntry('extenso2');
  53.         $idcidade     = new TDBCombo('idcidade''dbsalario''Cidade''id''idcidade');
  54.         $dia = new TEntry('dia');         
  55.         $idmes    = new TDBCombo('idmes''dbsalario''Mes''id''idmes');
  56.         $ano = new TEntry('ano');        
  57.             
  58.         $id->setEditable(FALSE);
  59.         
  60.         $dia1->setMask('99');
  61.         $mes1->setMask('99');        
  62.         $ano1->setMask('9999');
  63.         $dia2->setMask('99');
  64.         $mes2->setMask('99');
  65.         $ano2->setMask('9999');        
  66.         $dia->setMask('99');
  67.         $ano->setMask('9999');
  68.         
  69.         $id->setSize(50);
  70.         $nome->setSize(650);
  71.         $empresa->setSize(650);
  72.                 
  73.         $dia1->setSize(30);
  74.         $mes1->setSize(30);
  75.         $ano1->setSize(50);
  76.         $dia2->setSize(30);
  77.         $mes2->setSize(30);
  78.         $ano2->setSize(50);
  79.         
  80.         $salario->setSize(100);
  81.         $salario->setNumericMask(2',''.');
  82.         $extras->setSize(100);
  83.         $extras->setNumericMask(2',''.');        
  84.         $rendi1->setSize(100);
  85.         $rendi2->setSize(100);
  86.         $rendi3->setSize(100);
  87.         $rendi1vr->setSize(100);
  88.         $rendi1vr->setNumericMask(2',''.');         
  89.         $rendi2vr->setSize(100);
  90.         $rendi2vr->setNumericMask(2',''.');        
  91.         $rendi3vr->setSize(100);
  92.         $rendi3vr->setNumericMask(2',''.');         
  93.         $soma1->setSize(100);
  94.         $soma1->setNumericMask(2',''.');
  95. //        $soma1->setEditable(FALSE);
  96.         
  97.         $inss->setSize(100);
  98.         $inss->setNumericMask(2',''.');        
  99.         $imposto->setSize(100);
  100.         $imposto->setNumericMask(2',''.');        
  101.         $adianta->setSize(100);
  102.         $adianta->setNumericMask(2',''.');        
  103.         $dedu1->setSize(100);
  104.         $dedu2->setSize(100);
  105.         $dedu1vr->setSize(100);
  106.         $dedu1vr->setNumericMask(2',''.');        
  107.         $dedu2vr->setSize(100);
  108.         $dedu2vr->setNumericMask(2',''.');        
  109.         $soma2->setSize(100);
  110.         $soma2->setNumericMask(2',''.');        
  111. //        $soma2->setEditable(FALSE);
  112.         
  113.         $familia->setSize(100);
  114.         $familia->setNumericMask(2',''.');        
  115.         $liquido->setSize(100);
  116.         $liquido->setNumericMask(2',''.');        
  117. //        $liquido->setEditable(FALSE);        
  118.         $extenso1->setSize(430);
  119.         $extenso2->setSize(487);
  120.         $idcidade->setSize(250);
  121.         $dia->setSize(30);
  122.         $idmes->setSize(120);
  123.         $ano->setSize(50);        
  124.         
  125.         // Adiciona uma linha em branco no form        
  126.         $row $this->form->addRow();
  127.         $row->addCell( new TLabel(''));
  128.         
  129.         $this->form->addQuickFields(new TLabel('Código:'), array($id));
  130.         $this->form->addQuickFields(new TLabel('Nome:'), array($nome));
  131.         
  132.         // Set focus no campo nome - mas não funciona.
  133.         $script = new TElement('script'); 
  134.         $script->type 'text/javascript'
  135.         $script->add('
  136.         $("#nome").focus();
  137.         ');
  138.         $this->form->addRow()->addCell($script);
  139.         
  140.         $this->form->addQuickFields(new TLabel('Empresa:'), array($empresa));
  141.         $this->form->addQuickFields(new TLabel('Período - Dia: '), array($dia1,
  142.         $label_mes1 = new TLabel('Mes:'), $mes1,
  143.         $label_ano1 = new TLabel('Ano:'), $ano1,
  144.         $label_dia2 = new TLabel('Dia:'), $dia2,
  145.         $label_mes2 = new TLabel('Mes:'), $mes2,
  146.         $label_ano2 = new TLabel('Ano:'), $ano2));
  147.         
  148.         // Adiciona uma linha em branco no form        
  149.         $row $this->form->addRow();
  150.         $row->addCell( new TLabel(''));
  151.         
  152.         // Adiciona uma linha cinza com duas coluna e um título
  153.         $row $this->form->addRow();
  154.         $row->class 'tformsection';
  155.         $row->addCell( new TLabel('RENDIMENTOS'))->colspan 2;
  156.         
  157.         // Adiciona uma linha em branco no form        
  158.         $row $this->form->addRow();
  159.         $row->addCell( new TLabel(''));
  160.         $this->form->addQuickFields(new TLabel('Salário.........:'), array($salario,
  161.         $label_extras = new TLabel('Horas Extras...............:'), $extras));
  162.         $this->form->addQuickFields(new TLabel('Rendimento:'), array($rendi1,
  163.         $label_rendi1vr = new TLabel('Valor do Rendimento:'), $rendi1vr));
  164.         $this->form->addQuickFields(new TLabel('Rendimento:'), array($rendi2,
  165.         $label_rendi2vr = new TLabel('Valor do Rendimento:'), $rendi2vr));
  166.         $this->form->addQuickFields(new TLabel('Rendimento:'), array($rendi3,
  167.         $label_rendi3vr = new TLabel('Valor do Rendimento:'), $rendi3vr,
  168.         $label_soma1 = new TLabel('Soma..............:'), $soma1));
  169.                  
  170.         // Adiciona uma linha em branco no form        
  171.         $row $this->form->addRow();
  172.         $row->addCell( new TLabel(''));
  173.         // Adiciona uma linha cinza com duas coluna e um título
  174.         $row $this->form->addRow();  // Adiciona uma linha
  175.         $row->class 'tformsection';  // Aplica na linha a cor cinza
  176.         $row->addCell( new TLabel('DEDUÇÕES'))->colspan 2// Divide a linha em 2 colunas e coloca o título.
  177.         // Adiciona uma linha em branco no form        
  178.         $row $this->form->addRow();
  179.         $row->addCell( new TLabel(''));
  180.         
  181.         $this->form->addQuickFields(new TLabel('Inss..............:'), array($inss,
  182.         $label_imposto = new TLabel('I.R.Fonte......................:'), $imposto,
  183.         $label_adianta = new TLabel('Adiantamento:'), $adianta));
  184.         
  185.         $this->form->addQuickFields(new TLabel('Dedução:'), array($dedu1,
  186.         $label_dedu1vr = new TLabel('Valor da Dedução.....:'), $dedu1vr));
  187.         
  188.         $this->form->addQuickFields(new TLabel('Dedução:'), array($dedu2,
  189.         $label_dedu2vr = new TLabel('Valor da Dedução.....:'), $dedu2vr,
  190.         $label_soma2 = new TLabel('Soma:...............'), $soma2));
  191.         // Adiciona uma linha em branco no form        
  192.         $row $this->form->addRow();
  193.         $row->addCell( new TLabel(''));
  194.         
  195.         // Adiciona uma linha cinza com duas coluna e um título                
  196.         $row $this->form->addRow();
  197.         $row->class 'tformsection';
  198.         $row->addCell( new TLabel('COMPLEMENTO'))->colspan 2;
  199.         
  200.         // Adiciona uma linha em branco no form        
  201.         $row $this->form->addRow();
  202.         $row->addCell( new TLabel(''));        
  203.         $this->form->addQuickFields(new TLabel('Salário Familia:'), array($familia,
  204.         $label_liquido = new TLabel('Líquido a Receber:'), $liquido));
  205.         
  206.         $this->form->addQuickFields(new TLabel('Valor por Extenso:'), array($extenso1));
  207.         $this->form->addQuickFields(new TLabel('Continuação:'), array($extenso2));        
  208.         $this->form->addQuickFields(new TLabel('Nome da Cidade: '), array($idcidade,
  209.         $label_dia = new TLabel('Dia:'), $dia,
  210.         $label_idmes = new TLabel('Mês:'), $idmes,
  211.         $label_ano = new TLabel('Ano:'), $ano));
  212.         // Adiciona uma linha em branco no form        
  213.         $row $this->form->addRow();
  214.         $row->addCell( new TLabel(''));
  215.         // Botões
  216.         $novo = new TAction( array($this'onNovo'));
  217.         $this->form->addQuickAction('Novo'$novo'ico_new.png');
  218.         $save = new TAction( array($this'onSave'));
  219.         $this->form->addQuickAction('Salvar'$save'ico_save.png');
  220.         
  221.         $delete = new TAction( array($this'onDelete'));
  222.         $this->form->addQuickAction('Excluir'$delete'ico_delete.png');
  223.    
  224.         $list = new TAction( array('SalarioList''onReload'));
  225.         $this->form->addQuickAction('Listar'$list'ico_datagrid.png');
  226.         
  227.         $tudo = new TAction( array($this'onTudo'));
  228.         $this->form->addQuickAction('Excluir Tudo'$tudo'ico_delete.png');
  229.         parent::add($this->form);
  230.     }
  231.     
  232.     function show()
  233.     {
  234.         parent::show();
  235.     }
  236.     
  237.     public function onNovo()
  238.     {
  239.     try
  240.     {
  241.         TTransaction::open('dbsalario');
  242.            $object $this->form->getData('Salario');
  243.            $object->store();
  244.         TTransaction::close();
  245.     }
  246.     catch (Exception $e)
  247.     {
  248.        new TMessage('error'$e->getMessage());
  249.        TTransaction::rollback();
  250.     }
  251.    }
  252.     public function onSave()
  253.     {
  254.         try
  255.         {
  256.             TTransaction::open('dbsalario');
  257.             $object $this->form->getData('Salario');  // Obtem os dados do formulário.
  258.             $object->store();                         // Grava os Dados
  259.             
  260.             // Preenche o formulário com os dados do registro ativo.
  261.             $this->form->setData($object);
  262.             
  263.             TTransaction::close();
  264.             // new TMessage('info', 'Dados salvos com sucesso.');
  265.         }
  266.         catch (Exception $e)
  267.         {
  268.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  269.             TTransaction::rollback();
  270.         }
  271.     }
  272.     public function onDelete($param)
  273.     {
  274.     try
  275.     {
  276.         $key=$param['id'];
  277.         TTransaction::open('dbsalario');
  278.             $object = new Salario($key);
  279.             $object->delete();
  280.         TTransaction::close();
  281.         }
  282.     catch (Exception $e)
  283.     {
  284.         new TMessage('error'"O registro não pode ser excluido.");
  285.         TTransaction::rollback();
  286.     }
  287.     }
  288. //  A chamada para o método abaixo está no SalarioList
  289.    public function onEdit$param )
  290.    {
  291.       try
  292.       {
  293.            TTransaction::open('dbsalario');
  294.               $key $param['key'];
  295.               $object = new Salario $key );
  296.               $this->form->setData$object );
  297.            TTransaction::close();
  298.       }
  299.        catch (Exception $e)
  300.          {
  301.             new TMessage('error'$e->getMessage());
  302.             TTransaction::rollback();
  303.          }
  304.    }
  305.     function onTudo($param)
  306.     {
  307.         $action = new TAction(array($this'Tudo'));
  308.         $action->setParameters($param);
  309.         new TQuestion('Deseja Excluir Todos os Registros Cadastrados até Hoje?'$action);
  310.     }
  311.     public function Tudo$param )
  312.     {
  313.         try
  314.         {
  315.             TTransaction::open('dbsalario'); 
  316.             $repository = new TRepository('tabela'); 
  317.             $repository->delete(); 
  318.             
  319.             new TMessage('info''Todos os Registros foram Excluidos.'); 
  320.             TTransaction::close(); 
  321.         }
  322.         catch (Exception $e)
  323.         {
  324.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  325.             TTransaction::rollback();
  326.         }
  327.     }
  328.     
  329. }
  330. ?>