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:
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?
Preciso de uma ajuda de vocês!!!
Estou utilizando o Template ERP2 onde criei um formulário com um campo data dessa forma:
- <?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?
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
$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();
}
}
?>
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:
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,