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 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 (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. public function __construct()
  6. {
  7. parent::__construct();
  8. $script = new TElement('script');
  9. $script->type = 'text/javascript';
  10. $script->add('$("titulo").focus();');
  11. $table->addRow()->addCell($script);
  12. $this->form = new TQuickForm('form_filme');
  13. $this->form->setFormTitle('Cadastro de Filmes2');
  14. $this->form->class = 'tform';
  15. $this->form->style = 'width: 700px';
  16. $id = new TEntry('id');
  17. $titulo = new TEntry('titulo');
  18. $diretor = new TEntry('diretor');
  19. $idsuporte = new TDBCombo('idsuporte', 'teste', 'Suporte', 'id', 'idsuporte');
  20. $idgenero = new TDBCombo('idgenero', 'teste', 'Genero', 'id', 'idgenero');
  21. $dtlcto = new TDate('dtlcto');
  22. $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. * Construtor da Classe
  7. * Cria a página e o formulário
  8. */
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. // cria o formulário
  13. $this->form = new TForm('form_Cliente');
  14. $this->form->class = 'tform'; // CSS class
  15. $this->form->style = 'width: 500px';
  16. // cria a tabela
  17. $table = new TTable;
  18. $table->width = '100%';
  19. $table_buttons = new TTable;
  20. // adiciona a tabela dentro do formulário
  21. $this->form->add($table);
  22. // cria os campos do formulário
  23. $id = new TEntry('id');
  24. $nome = new TEntry('nome');
  25. $cpf = new TEntry('cpf');
  26. $rg = new TEntry('rg');
  27. $matricula = new TEntry('matricula');
  28. $data_nascimento = new TDate('data_nascimento');
  29. $sexo = new TCombo('sexo');
  30. $endereco = new TEntry('endereco');
  31. $bairro = new TEntry('bairro');
  32. $cidade = new TEntry('cidade');
  33. $id_estado = new TDBCombo('id_estado', 'almoxarifado', 'Estado', 'id', 'nome');
  34. $cep = new TEntry('cep');
  35. $telefone = new TEntry('telefone');
  36. $email = new TEntry('email');
  37. $id_setor = new TDBCombo('id_setor', 'almoxarifado', 'Setor', 'id', 'nome');
  38. $obs = new TText('obs');
  39. // define os tamanhos
  40. $id->setSize(100);
  41. $nome->setSize(250);
  42. $cpf->setSize(150);
  43. $rg->setSize(150);
  44. $matricula->setSize(150);
  45. $data_nascimento->setSize(100);
  46. $sexo->setSize(100);
  47. $endereco->setSize(250);
  48. $bairro->setSize(150);
  49. $cidade->setSize(150);
  50. $id_estado->setSize(150);
  51. $cep->setSize(100);
  52. $telefone->setSize(150);
  53. $email->setSize(200);
  54. $id_setor->setSize(300);
  55. $obs->setSize(300, 100);
  56. $id->setEditable(FALSE);
  57. $cpf->setMask('999.999.999-99');
  58. $matricula->setMask('9999999');
  59. $data_nascimento->setMask('dd/mm/yyyy');
  60. $cep->setMask('99999-999');
  61. $telefone->setMask("(99)9999-9999");
  62. $sexo->addItems(array(1 => 'MASCULINO', 2 => 'FEMININO'));
  63. // validação dos campos
  64. $nome->addValidation('NOME', new TRequiredValidator); // campo obrigatório
  65. $matricula->addValidation('MATRICULA', new TRequiredValidator); // campo obrigatório
  66. $email->addValidation('E-MAIL', new TRequiredValidator); // campo obrigatório
  67. $email->addValidation('E-MAIL', new TEmailValidator); // email válido
  68. $id_setor->addValidation('SETOR', new TRequiredValidator); // campo obrigatório
  69. // adiciona jQuery para máscara e focus
  70. $nome->id = 'nome';
  71. $rg->id = 'rg';
  72. $endereco->id = 'endereco';
  73. $bairro->id = 'bairro';
  74. $cidade->id = 'cidade';
  75. $script = new TElement('script');
  76. $script->type = 'text/javascript';
  77. $script->add('
  78. $("#nome").focus();
  79. $("#nome").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  80. $("#rg").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  81. $("#endereco").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  82. $("#bairro").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  83. $("#cidade").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });
  84. ');
  85. $table->addRow()->addCell($script);
  86. // define o título do formulário
  87. $row = $table->addRow();
  88. $row->class = 'tformtitle';
  89. $cell = $row->addCell(new TLabel('Cadastro de Clientes'));
  90. $cell->colspan = 2;
  91. // adiciona os campos do formulário
  92. $table->addRowSet(new TLabel('ID:'), $id);
  93. $table->addRowSet(new TLabel('Nome:'), $nome);
  94. $table->addRowSet(new TLabel('CPF:'), $cpf);
  95. $table->addRowSet(new TLabel('RG:'), $rg);
  96. $table->addRowSet(new TLabel('Matrícula:'), $matricula);
  97. $table->addRowSet(new TLabel('Nascimento:'), $data_nascimento);
  98. $table->addRowSet(new TLabel('Sexo:'), $sexo);
  99. $table->addRowSet(new TLabel('Endereço:'), $endereco);
  100. $table->addRowSet(new TLabel('Bairro:'), $bairro);
  101. $table->addRowSet(new TLabel('Cidade:'), $cidade);
  102. $table->addRowSet(new TLabel('Estado:'), $id_estado);
  103. $table->addRowSet(new TLabel('CEP:'), $cep);
  104. $table->addRowSet(new TLabel('Telefone:'), $telefone);
  105. $table->addRowSet(new TLabel('E-mail:'), $email);
  106. $table->addRowSet(new TLabel('Setor:'), $id_setor);
  107. $table->addRowSet(new TLabel('Observação:'), $obs);
  108. // cria o botão de ação (salvar)
  109. $save_button = new TButton('save');
  110. $save_button->setAction(new TAction(array($this, 'onSave')), 'Salvar');
  111. $save_button->setImage('ico_save.png');
  112. // cria o botão de ação (novo)
  113. $new_button = new TButton('new');
  114. $new_button->setAction(new TAction(array($this, 'onEdit')), 'Novo');
  115. $new_button->setImage('ico_new.png');
  116. // cria o botão de ação (listar)
  117. $goto_button = new TButton('list');
  118. $goto_button->setAction(new TAction(array('ClienteListagem', 'onReload')), 'Listar');
  119. $goto_button->setImage('ico_datagrid.png');
  120. // adiciona uma linha para a ação do formulário
  121. $row = $table_buttons->addRow();
  122. $row->addCell($save_button);
  123. $row->addCell($new_button);
  124. $row->addCell($goto_button);
  125. // adiciona uma linha para a ação do formulário
  126. $row = $table->addRow();
  127. $row->class = 'tformaction';
  128. $cell=$row->addCell($table_buttons);
  129. $cell->colspan = 2;
  130. // define quais são os campos do formulário
  131. $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));
  132. // empacota o conteúdo da página usando uma caixa vertical
  133. $vbox = new TVBox;
  134. $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  135. $vbox->add($this->form);
  136. parent::add($vbox);
  137. }
  138. /**
  139. * método onSave()
  140. * Executado quando o usuário clicar no botão salvar
  141. */
  142. public function onSave()
  143. {
  144. try
  145. {
  146. // valida o formulário
  147. $this->form->validate();
  148. // abre uma transação com o banco de dados 'almoxarifado'
  149. TTransaction::open('almoxarifado');
  150. $object = $this->form->getData('Cliente'); // pega os dados do formulário no Active Record Cliente
  151. $object->data_nascimento = TDate::date2us($object->data_nascimento); // converte a data para o formato yyyy-mm-dd
  152. $object->store(); // armazena o objeto
  153. // preenche o formulário com os dados do Active Record
  154. $object->data_nascimento = TDate::date2br($object->data_nascimento); // converte a data para o formato dd/mm/yyyy
  155. $this->form->setData($object);
  156. TTransaction::close(); // fecha a transação
  157. // mostra uma mensagem de sucesso
  158. new TMessage('info', 'Registro Salvo!');
  159. // recarrega a listagem
  160. }
  161. catch (Exception $e) // no caso de exceção
  162. {
  163. // mostra a mensagem de erro da exceção
  164. new TMessage('error', '<b>ERRO!</b><br> ' . $e->getMessage());
  165. // apaga todas as operações pendentes
  166. TTransaction::rollback();
  167. }
  168. }
  169. /**
  170. * método onEdit()
  171. * Executado quando o usuário clicar no botão Editar da datagrid
  172. */
  173. public function onEdit($param)
  174. {
  175. try
  176. {
  177. if (isset($param['key']))
  178. {
  179. // pega o parâmetro $key
  180. $key = $param['key'];
  181. TTransaction::open('almoxarifado'); // abre uma transação com a base de dados 'almoxarifado'
  182. $object = new Cliente($key); // instancia um objeto Cliente
  183. $object->data_nascimento = TDate::date2br($object->data_nascimento); // converte a data para o formato dd/mm/yyyy
  184. $this->form->setData($object); // preenche o formulário com os dados do Active Record Cliente
  185. TTransaction::close(); // fecha a transação
  186. }
  187. else
  188. {
  189. $this->form->clear();
  190. }
  191. }
  192. catch (Exception $e) // no caso de exceção
  193. {
  194. // mostra a mensagem de erro da exceção
  195. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  196. // apaga todas as operações pendentes
  197. TTransaction::rollback();
  198. }
  199. }
  200. }
  201. ?>
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. public function __construct()
  6. {
  7. parent::__construct();
  8. // A linha abaixo executa um script em java,
  9. // substituindo o tab pelo enter.
  10. // Mas não funciona.
  11. parent::include_js('app/lib/include/application.js');
  12. $this->form = new TQuickForm('form_salario');
  13. $this->form->setFormTitle('Cadastro de Recibo de Salário');
  14. $this->form->class = 'tform';
  15. $this->form->style = 'width: 800px';
  16. $id = new TEntry('id');
  17. $nome = new TEntry('nome');
  18. $empresa = new TEntry('empresa');
  19. $dia1 = new TEntry('dia1');
  20. $mes1 = new TEntry('mes1');
  21. $ano1 = new TEntry('ano1');
  22. $dia2 = new TEntry('dia2');
  23. $mes2 = new TEntry('mes2');
  24. $ano2 = new TEntry('ano2');
  25. $salario = new TEntry('salario');
  26. $extras = new TEntry('extras');
  27. $rendi1 = new TEntry('rendi1');
  28. $rendi2 = new TEntry('rendi2');
  29. $rendi3 = new TEntry('rendi3');
  30. $rendi1vr = new TEntry('rendi1vr');
  31. $rendi2vr = new TEntry('rendi2vr');
  32. $rendi3vr = new TEntry('rendi3vr');
  33. $soma1 = new TEntry('soma1');
  34. $inss = new TEntry('inss');
  35. $imposto = new TEntry('imposto');
  36. $adianta = new TEntry('adianta');
  37. $dedu1 = new TEntry('dedu1');
  38. $dedu2 = new TEntry('dedu2');
  39. $dedu1vr = new TEntry('dedu1vr');
  40. $dedu2vr = new TEntry('dedu2vr');
  41. $soma2 = new TEntry('soma2');
  42. $familia = new TEntry('familia');
  43. $liquido = new TEntry('liquido');
  44. $extenso1 = new TEntry('extenso1');
  45. $extenso2 = new TEntry('extenso2');
  46. $idcidade = new TDBCombo('idcidade', 'dbsalario', 'Cidade', 'id', 'idcidade');
  47. $dia = new TEntry('dia');
  48. $idmes = new TDBCombo('idmes', 'dbsalario', 'Mes', 'id', 'idmes');
  49. $ano = new TEntry('ano');
  50. $id->setEditable(FALSE);
  51. $dia1->setMask('99');
  52. $mes1->setMask('99');
  53. $ano1->setMask('9999');
  54. $dia2->setMask('99');
  55. $mes2->setMask('99');
  56. $ano2->setMask('9999');
  57. $dia->setMask('99');
  58. $ano->setMask('9999');
  59. $id->setSize(50);
  60. $nome->setSize(650);
  61. $empresa->setSize(650);
  62. $dia1->setSize(30);
  63. $mes1->setSize(30);
  64. $ano1->setSize(50);
  65. $dia2->setSize(30);
  66. $mes2->setSize(30);
  67. $ano2->setSize(50);
  68. $salario->setSize(100);
  69. $salario->setNumericMask(2, ',', '.');
  70. $extras->setSize(100);
  71. $extras->setNumericMask(2, ',', '.');
  72. $rendi1->setSize(100);
  73. $rendi2->setSize(100);
  74. $rendi3->setSize(100);
  75. $rendi1vr->setSize(100);
  76. $rendi1vr->setNumericMask(2, ',', '.');
  77. $rendi2vr->setSize(100);
  78. $rendi2vr->setNumericMask(2, ',', '.');
  79. $rendi3vr->setSize(100);
  80. $rendi3vr->setNumericMask(2, ',', '.');
  81. $soma1->setSize(100);
  82. $soma1->setNumericMask(2, ',', '.');
  83. // $soma1->setEditable(FALSE);
  84. $inss->setSize(100);
  85. $inss->setNumericMask(2, ',', '.');
  86. $imposto->setSize(100);
  87. $imposto->setNumericMask(2, ',', '.');
  88. $adianta->setSize(100);
  89. $adianta->setNumericMask(2, ',', '.');
  90. $dedu1->setSize(100);
  91. $dedu2->setSize(100);
  92. $dedu1vr->setSize(100);
  93. $dedu1vr->setNumericMask(2, ',', '.');
  94. $dedu2vr->setSize(100);
  95. $dedu2vr->setNumericMask(2, ',', '.');
  96. $soma2->setSize(100);
  97. $soma2->setNumericMask(2, ',', '.');
  98. // $soma2->setEditable(FALSE);
  99. $familia->setSize(100);
  100. $familia->setNumericMask(2, ',', '.');
  101. $liquido->setSize(100);
  102. $liquido->setNumericMask(2, ',', '.');
  103. // $liquido->setEditable(FALSE);
  104. $extenso1->setSize(430);
  105. $extenso2->setSize(487);
  106. $idcidade->setSize(250);
  107. $dia->setSize(30);
  108. $idmes->setSize(120);
  109. $ano->setSize(50);
  110. // Adiciona uma linha em branco no form
  111. $row = $this->form->addRow();
  112. $row->addCell( new TLabel(''));
  113. $this->form->addQuickFields(new TLabel('Código:'), array($id));
  114. $this->form->addQuickFields(new TLabel('Nome:'), array($nome));
  115. // Set focus no campo nome - mas não funciona.
  116. $script = new TElement('script');
  117. $script->type = 'text/javascript';
  118. $script->add('
  119. $("#nome").focus();
  120. ');
  121. $this->form->addRow()->addCell($script);
  122. $this->form->addQuickFields(new TLabel('Empresa:'), array($empresa));
  123. $this->form->addQuickFields(new TLabel('Período - Dia: '), array($dia1,
  124. $label_mes1 = new TLabel('Mes:'), $mes1,
  125. $label_ano1 = new TLabel('Ano:'), $ano1,
  126. $label_dia2 = new TLabel('Dia:'), $dia2,
  127. $label_mes2 = new TLabel('Mes:'), $mes2,
  128. $label_ano2 = new TLabel('Ano:'), $ano2));
  129. // Adiciona uma linha em branco no form
  130. $row = $this->form->addRow();
  131. $row->addCell( new TLabel(''));
  132. // Adiciona uma linha cinza com duas coluna e um título
  133. $row = $this->form->addRow();
  134. $row->class = 'tformsection';
  135. $row->addCell( new TLabel('RENDIMENTOS'))->colspan = 2;
  136. // Adiciona uma linha em branco no form
  137. $row = $this->form->addRow();
  138. $row->addCell( new TLabel(''));
  139. $this->form->addQuickFields(new TLabel('Salário.........:'), array($salario,
  140. $label_extras = new TLabel('Horas Extras...............:'), $extras));
  141. $this->form->addQuickFields(new TLabel('Rendimento:'), array($rendi1,
  142. $label_rendi1vr = new TLabel('Valor do Rendimento:'), $rendi1vr));
  143. $this->form->addQuickFields(new TLabel('Rendimento:'), array($rendi2,
  144. $label_rendi2vr = new TLabel('Valor do Rendimento:'), $rendi2vr));
  145. $this->form->addQuickFields(new TLabel('Rendimento:'), array($rendi3,
  146. $label_rendi3vr = new TLabel('Valor do Rendimento:'), $rendi3vr,
  147. $label_soma1 = new TLabel('Soma..............:'), $soma1));
  148. // Adiciona uma linha em branco no form
  149. $row = $this->form->addRow();
  150. $row->addCell( new TLabel(''));
  151. // Adiciona uma linha cinza com duas coluna e um título
  152. $row = $this->form->addRow(); // Adiciona uma linha
  153. $row->class = 'tformsection'; // Aplica na linha a cor cinza
  154. $row->addCell( new TLabel('DEDUÇÕES'))->colspan = 2; // Divide a linha em 2 colunas e coloca o título.
  155. // Adiciona uma linha em branco no form
  156. $row = $this->form->addRow();
  157. $row->addCell( new TLabel(''));
  158. $this->form->addQuickFields(new TLabel('Inss..............:'), array($inss,
  159. $label_imposto = new TLabel('I.R.Fonte......................:'), $imposto,
  160. $label_adianta = new TLabel('Adiantamento:'), $adianta));
  161. $this->form->addQuickFields(new TLabel('Dedução:'), array($dedu1,
  162. $label_dedu1vr = new TLabel('Valor da Dedução.....:'), $dedu1vr));
  163. $this->form->addQuickFields(new TLabel('Dedução:'), array($dedu2,
  164. $label_dedu2vr = new TLabel('Valor da Dedução.....:'), $dedu2vr,
  165. $label_soma2 = new TLabel('Soma:...............'), $soma2));
  166. // Adiciona uma linha em branco no form
  167. $row = $this->form->addRow();
  168. $row->addCell( new TLabel(''));
  169. // Adiciona uma linha cinza com duas coluna e um título
  170. $row = $this->form->addRow();
  171. $row->class = 'tformsection';
  172. $row->addCell( new TLabel('COMPLEMENTO'))->colspan = 2;
  173. // Adiciona uma linha em branco no form
  174. $row = $this->form->addRow();
  175. $row->addCell( new TLabel(''));
  176. $this->form->addQuickFields(new TLabel('Salário Familia:'), array($familia,
  177. $label_liquido = new TLabel('Líquido a Receber:'), $liquido));
  178. $this->form->addQuickFields(new TLabel('Valor por Extenso:'), array($extenso1));
  179. $this->form->addQuickFields(new TLabel('Continuação:'), array($extenso2));
  180. $this->form->addQuickFields(new TLabel('Nome da Cidade: '), array($idcidade,
  181. $label_dia = new TLabel('Dia:'), $dia,
  182. $label_idmes = new TLabel('Mês:'), $idmes,
  183. $label_ano = new TLabel('Ano:'), $ano));
  184. // Adiciona uma linha em branco no form
  185. $row = $this->form->addRow();
  186. $row->addCell( new TLabel(''));
  187. // Botões
  188. $novo = new TAction( array($this, 'onNovo'));
  189. $this->form->addQuickAction('Novo', $novo, 'ico_new.png');
  190. $save = new TAction( array($this, 'onSave'));
  191. $this->form->addQuickAction('Salvar', $save, 'ico_save.png');
  192. $delete = new TAction( array($this, 'onDelete'));
  193. $this->form->addQuickAction('Excluir', $delete, 'ico_delete.png');
  194. $list = new TAction( array('SalarioList', 'onReload'));
  195. $this->form->addQuickAction('Listar', $list, 'ico_datagrid.png');
  196. $tudo = new TAction( array($this, 'onTudo'));
  197. $this->form->addQuickAction('Excluir Tudo', $tudo, 'ico_delete.png');
  198. parent::add($this->form);
  199. }
  200. function show()
  201. {
  202. parent::show();
  203. }
  204. public function onNovo()
  205. {
  206. try
  207. {
  208. TTransaction::open('dbsalario');
  209. $object = $this->form->getData('Salario');
  210. $object->store();
  211. TTransaction::close();
  212. }
  213. catch (Exception $e)
  214. {
  215. new TMessage('error', $e->getMessage());
  216. TTransaction::rollback();
  217. }
  218. }
  219. public function onSave()
  220. {
  221. try
  222. {
  223. TTransaction::open('dbsalario');
  224. $object = $this->form->getData('Salario'); // Obtem os dados do formulário.
  225. $object->store(); // Grava os Dados
  226. // Preenche o formulário com os dados do registro ativo.
  227. $this->form->setData($object);
  228. TTransaction::close();
  229. // new TMessage('info', 'Dados salvos com sucesso.');
  230. }
  231. catch (Exception $e)
  232. {
  233. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  234. TTransaction::rollback();
  235. }
  236. }
  237. public function onDelete($param)
  238. {
  239. try
  240. {
  241. $key=$param['id'];
  242. TTransaction::open('dbsalario');
  243. $object = new Salario($key);
  244. $object->delete();
  245. TTransaction::close();
  246. }
  247. catch (Exception $e)
  248. {
  249. new TMessage('error', "O registro não pode ser excluido.");
  250. TTransaction::rollback();
  251. }
  252. }
  253. // A chamada para o método abaixo está no SalarioList
  254. public function onEdit( $param )
  255. {
  256. try
  257. {
  258. TTransaction::open('dbsalario');
  259. $key = $param['key'];
  260. $object = new Salario ( $key );
  261. $this->form->setData( $object );
  262. TTransaction::close();
  263. }
  264. catch (Exception $e)
  265. {
  266. new TMessage('error', $e->getMessage());
  267. TTransaction::rollback();
  268. }
  269. }
  270. function onTudo($param)
  271. {
  272. $action = new TAction(array($this, 'Tudo'));
  273. $action->setParameters($param);
  274. new TQuestion('Deseja Excluir Todos os Registros Cadastrados até Hoje?', $action);
  275. }
  276. public function Tudo( $param )
  277. {
  278. try
  279. {
  280. TTransaction::open('dbsalario');
  281. $repository = new TRepository('tabela');
  282. $repository->delete();
  283. new TMessage('info', 'Todos os Registros foram Excluidos.');
  284. TTransaction::close();
  285. }
  286. catch (Exception $e)
  287. {
  288. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  289. TTransaction::rollback();
  290. }
  291. }
  292. }
  293. ?>