Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Formatação Campo TDate para Formato Brasileiro Olá pessoal, Preciso de uma ajuda de vocês!!! Estou utilizando o Template ERP2 onde criei um formulário com um campo data dessa forma: Quando clico no campo abre o calendário em português, até aqui tudo bem! Só que quando eu escolho a data, a mesma preenche o campo no formato ano/mês/dia. só que quando vou salvar preciso...
RC
Formatação Campo TDate para Formato Brasileiro  
Fechado
Olá pessoal,

Preciso de uma ajuda de vocês!!!

Estou utilizando o Template ERP2 onde criei um formulário com um campo data dessa forma:
  1. <?php $data_consulta = new TDate('dataconsulta'); ?>


Quando clico no campo abre o calendário em português, até aqui tudo bem! Só que quando eu escolho a data, a mesma preenche o campo no formato ano/mês/dia.

só que quando vou salvar preciso converter a mesma em ano/mês/dia

Como faço para o campo ser preenchido no formato: dia/mês/ano e posteriormente converter ele para o formato anterior (formato americano) para salvar na base de dados?

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)


LJ

Após ler do banco de dados deve tranformar em formato br
$object->data_consulta = TDate::date2br($object->data_consulta );
e antes de gravar transformar para formato do BD
$object->data_consulta = TDate::date2us($object->data_consulta );
mais ou menos como esta abaixo


  1. <?php
  2.  $data_consulta = new TDate('dataconsulta'); ?>


$data_consulta ->setMask('dd/mm/yyyy');

function onEdit($param)
{
try
{
if (isset($param['key']))
{
$key=$param['key']; // get the parameter $key
TTransaction::open('permission'); // open a transaction
$object = new Apontamento($key); // instantiates the Active Record
// preenche o campo titulo da ordem e da tarefa
$object->titulo = $object->OrdemDeServico->titulo;
$object->tarefa_descricao = $object->Tarefa->descricao;
$object->data_consulta = TDate::date2br($object->data_consulta );
$this->form->setData($object); // fill the form
TTransaction::close(); // close the transaction
$this->onReload();
}
else
{
$this->form->clear();
$object = new StdClass;
$object->usuario_id = TSession::getValue('loginID');
$object->name = TSession::getValue('username');
$object->data_consulta = date("d-m-Y");
$this->form->setData($object);
}
}
catch (Exception $e) // in case of exception
{
new TMessage('error', 'Error ' . $e->getMessage()); // shows the exception error message
TTransaction::rollback(); // undo all pending operations
}

function onSave()
{
try
{
TTransaction::open('permission');

$object = $this->form->getData('Apontamento');
$this->form->validate();
$object->data_consulta = TDate::date2us($object->data_consulta );
$object->store();
TTransaction::close();

new TMessage('info', 'Registro Salvo');
// reload the listing
$this->onReload();
}
catch (Exception $e)
{
new TMessage('error','Erro '.$e->getMessage());
TTransaction::rollback();
}
}

?>
RC

Olá Luiz Jampolsky.

Eu consegui formatar a data para o padrão dd/mm/yyyy com sucesso seguindo seu exemplo!

Agora vi que vc alterou os metódos chamado onEdit e onSave! Onde encontro esses metódos para fazer tal alteração? Falo isso porque na minha aplicação não tem definido essas funções e ainda assim estou conseguindo salvar e editar.

Abaixo segue o código do meu formulaŕio:

  1. <?php
  2. class SystemAgendaForm extends TStandardForm
  3. {
  4.     protected $form;
  5.     
  6.     function __construct()
  7.     {
  8.         parent::__construct();
  9.         
  10.         $this->form = new TQuickForm('form_SystemAgenda');
  11.         $this->form->setFormTitle(_t('Agenda'));
  12.         $this->form->class 'tform';
  13.         
  14.         // defines the database
  15.         parent::setDatabase('permission');
  16.         
  17.         // defines the active record
  18.         parent::setActiveRecord('SystemAgenda');        
  19.         
  20.         $id            = new TEntry('id');
  21.         $exame         = new TEntry('exame');
  22.         $paciente      = new TEntry('paciente');
  23.         $dataconsulta  = new TDate('dataconsulta');              
  24.                 
  25.         $id->setEditable(false);
  26.         $dataconsulta->setMask('dd/mm/yyyy'); 
  27.         // add the fields
  28.         $this->form->addQuickField('ID'$id,  50);
  29.         $this->form->addQuickField(_t('Examination') . ': '$exame,  200);
  30.         $this->form->addQuickField(_t('Patient') . ': '$paciente,  200);
  31.         $this->form->addQuickField('Data Consulta' ': '$dataconsulta,  200);
  32.         // validations
  33.         $exame->addValidation(_t('Examination'), new TRequiredValidator);
  34.         $paciente->addValidation(('Patient'), new TRequiredValidator);
  35.         // add form actions
  36.         $this->form->addQuickAction(_t('Save'), new TAction(array($this'onSave')), 'ico_save.png');
  37.         $this->form->addQuickAction(_t('New'), new TAction(array($this'onEdit')), 'ico_new.png');
  38.         $this->form->addQuickAction(_t('Back to the listing'),new TAction(array('SystemAgendaList','onReload')),'ico_datagrid.png');
  39.         $container = new TTable;
  40.         $container->style 'width: 80%';
  41.         $container->addRow()->addCell(new TXMLBreadCrumb('menu.xml','SystemAgendaList'));
  42.         $container->addRow()->addCell($this->form);
  43.         
  44.         
  45.         // add the form to the page
  46.         parent::add($container);
  47.     }
  48. }
  49. ?>

PD

Ricelli,

Você está estendendo TStandardForm. Lá está a funcionalidade.
TStandardForm provê um comportamento padrão.

Você precisará estender TPage, e escrever os método onEdit() e onSave()
na mão se quiser mudar o comportamento.

Ex:
www.adianti.com.br/framework_files/tutor/index.php?class=CompleteFor

Att,