quinta-feira, novembro 22, 2007

Máscara em Campos Agregados - Alternativa

Salve,

Não me lembro de ter feito isso antes, e hoje precisei colocar máscara (DisplayFormat) em um campo Agregado (TAggregate) de um ClientDataSet, e não sei por que cargas d'água não consegui. O negócio simplesmente não funciona de jeito nenhum! Tentei várias máscaras, mudei propriedades, mas nada.

Como estava com pressa, não "googlei" muito, e acabei resolvendo o problema de forma caseira. A solução foi implementar o evento OnGetText do campo agregado e depois compartilhar o evento entre os agregados. Ficou assim:

procedure TfrmMeuFormulario.cdsExemplototal_pesoGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
//Outras mascaras podem ser usadas
Text := FormatFloat('#,##0', Sender.Value);
end;

Aliás, quem tiver a solução definitiva para esse problema podem apresentar à vontade, pois eu também gostaria de saber.

Um comentário:

Nilson Alves de Souza disse...

Parabéns guri, passei quase uma semana tentando solucionar este problema e seu macete me ajudou muito. Abraços e muito sucesso pra vc.