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:
<?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


<?php $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:

<?phpclass SystemAgendaForm extends TStandardForm{    protected $form;        function __construct()    {        parent::__construct();                $this->form = new TQuickForm('form_SystemAgenda');        $this->form->setFormTitle(_t('Agenda'));        $this->form->class = 'tform';                // defines the database        parent::setDatabase('permission');                // defines the active record        parent::setActiveRecord('SystemAgenda');                        $id            = new TEntry('id');        $exame         = new TEntry('exame');        $paciente      = new TEntry('paciente');        $dataconsulta  = new TDate('dataconsulta');                                      $id->setEditable(false);        $dataconsulta->setMask('dd/mm/yyyy');         // add the fields        $this->form->addQuickField('ID', $id,  50);        $this->form->addQuickField(_t('Examination') . ': ', $exame,  200);        $this->form->addQuickField(_t('Patient') . ': ', $paciente,  200);        $this->form->addQuickField('Data Consulta' . ': ', $dataconsulta,  200);        // validations        $exame->addValidation(_t('Examination'), new TRequiredValidator);        $paciente->addValidation(('Patient'), new TRequiredValidator);        // add form actions        $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'ico_save.png');        $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onEdit')), 'ico_new.png');        $this->form->addQuickAction(_t('Back to the listing'),new TAction(array('SystemAgendaList','onReload')),'ico_datagrid.png');        $container = new TTable;        $container->style = 'width: 80%';        $container->addRow()->addCell(new TXMLBreadCrumb('menu.xml','SystemAgendaList'));        $container->addRow()->addCell($this->form);                        // add the form to the page        parent::add($container);    }}?>

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,
Controle a sua privacidade
Nosso site usa cookies para melhorar a navegação