FS
Data em dd/mm/yyyy em datagrids com setTransformer()
Fechado
Boa tarde,
Eu criei um formulário pelo Form Designer, no qual tenho um campo que é data de nascimento. A máscara para inserir no formato dd-mm-yyyy está ok, só que não estou conseguindo fazer com que apareça neste formato no meu Datagrid.
Alguém pode me auxiliar na utilização do método setTransformer() ? No arquivo em anexo seguem os códigos.
Muito obrigado.
Eu criei um formulário pelo Form Designer, no qual tenho um campo que é data de nascimento. A máscara para inserir no formato dd-mm-yyyy está ok, só que não estou conseguindo fazer com que apareça neste formato no meu Datagrid.
Alguém pode me auxiliar na utilização do método setTransformer() ? No arquivo em anexo seguem os códigos.
Muito obrigado.
No OnReload nesse trecho altere
O formato está aparecendo correto agora, só tenho mais uma dúvida. Ele está mostrando as datas todas com 0 (00/00/0000), isto deve ser provavelmente por causa do meu banco MySQL que só recebe a data no formato yyyy-mm-dd.
Eu tenho que fazer um tratamento no formulário para gravar correto, e assim aparecer certo no datagrid?
Se falei alguma besteira me corrija.
Obrigado.
Felipe, consegui resolver.
alterei o trecho no método onSave do form conforme abaixo, e deu tudo certo.
// add the object inside the datagrid
$object->data_nascimento = TDate::date2br($object->data_nascimento);
$this->datagrid->addItem($object);
Muito obrigado.
Abraço.
Fabiano,
Prefira usar o método setTransformer(), pois ele evita de termos de reescrever o método onReload().
Usando o setTransformer(), podemos usar o onReload() padrão do framework TStandardList, por exemplo.
Att,
Obrigado Pablo, irei testar desta maneira também.
Abraço.
Cuidado Fabiano pelo que entendi vc está usando o campo data como string use como Date o correto é transformar a data em formato americano no OnSave e retornar depois no OnReload.
Com o MySql eu prefiro usar o formulário completo do Studio e fazer as modificações conforme abaixo:
no OnSave
$object->data_nascimento = TDate::date2us($object->data_nascimento);
$object->store();
$object->data_nascimento = TDate::date2br($object->data_nascimento);
$this->form->setData($object);
no OnReload
$object->data_nascimento = TDate::date2br($object->data_nascimento);
Com datas trabalhe com datas no BD senão depois para tirar relatórios vai dar errado.
Sds
Felipe Cortez
Obrigado pela orientação Felipe, vou ter este cuidado sim.
Abraço.
Estou com o mesmo problema. Não seria possível já deixar tudo formatado dentro do MODEL, para que fosse transparente nas telas e grids ?
Sergio,
Evite comentar posts antigos, dificulta a busca e a resposta também.
Converter na model é perigoso, pois nem sempre você vai querer em dd/mm/yyyy.
Te dou um exemplo: cálculo de diferença de datas.
Att,
Pablo