Fórum Clientdataset em tempo de execução... #327323

11/08/2006

0

amigos, tenho um clientdataset que defino os campos em tempo de execucao do programa. esta tudo certinho, a unica coisa que nao consegui definir foi a propriedade displayformat do campo. alguem poderia me dar uma força?
segue um pedaco do codigo fonte:

gmov.FieldDefs.Clear;
gmov.FieldDefs.Add(´Mes´,ftstring,3,false);
sql.first;
while not sql.eof do begin
if rd2.ItemIndex=0 then
Campo1:=´S-´+strzero(sql.fieldbyname(´ano´).AsString,4)
else
Campo1:=´V-´+strzero(sql.fieldbyname(´ano´).AsString,4);
gmov.FieldDefs.add(campo1, ftfloat,0, false);
sql.Next;
end;
gmov.CreateDataSet;


Logos

Logos

Responder

Posts

12/08/2006

Marco Salles

gmov.FieldDefs.Add(´Mes´,ftstring,3,false);


A propriedade DisplyFormar é especifica da classe [b:00f3dd4794]TFloatField[/b:00f3dd4794] e não a da Classe [b:00f3dd4794]TStringField[/b:00f3dd4794] com parece ser o seu caso


Responder

Gostei + 0

12/08/2006

Logos

[quote:b99a2e216a=´Marco Salles´]
gmov.FieldDefs.Add(´Mes´,ftstring,3,false);


A propriedade DisplyFormar é especifica da classe [b:b99a2e216a]TFloatField[/b:b99a2e216a] e não a da Classe [b:b99a2e216a]TStringField[/b:b99a2e216a] com parece ser o seu caso[/quote:b99a2e216a]

mas eu nao quero criar uma mascara para este campo. quero criar para este outro que esta dentro do loop.

estou criando uma tabela assim:
mes|vendas 2006|vendas 2005|vendas 2004

ela e dinamica as colunas de vendas. so preciso definiar a mascara para as colunas de vendas. que nao consegui. ai o visual nao fica legal, quando tem decimais.


Responder

Gostei + 0

12/08/2006

[ro]

Voce pode verificar o tipo do campo e com isso aplicar ou nao a propriedade displayformat. Um exemplo:

if (ClientDataSet1.FieldByName(´teste´).DataType = ftFloat) then
TNumericField(ClientDataSet1.FieldByName(´teste´)).displayFormat := ´#0.00´;


Responder

Gostei + 0

12/08/2006

Marco Salles

apos criar o campo do tipo TfloatFiled , Tente fazer..

gmov.FieldByName(´Campo1´).AsCurrency:=True;



Responder

Gostei + 0

12/08/2006

Logos

[quote:1a174f80bf=´Marco Salles´]apos criar o campo do tipo TfloatFiled , Tente fazer..

gmov.FieldByName(´Campo1´).AsCurrency:=True;
[/quote:1a174f80bf]
isso eu ja fiz, mas ai fica o R$, e nao serve porque e quantidades com decimais.


Responder

Gostei + 0

12/08/2006

Marco Salles

sentão faça assim :

TFloatField(cds.FieldByName(´Campo´)).displayFormat:=´aqui so seu Formato´;


Responder

Gostei + 0

12/08/2006

Marco Salles

Desculpe , eu não tiro o cds da cabeça ...

TFloatField(gmov.FieldByName(´Campo´)).displayFormat:=´aqui o seu Formato´;



Responder

Gostei + 0

12/08/2006

Logos

[quote:9a16363abb=´Marco Salles´]Desculpe , eu não tiro o cds da cabeça ...

TFloatField(gmov.FieldByName(´Campo´)).displayFormat:=´aqui o seu Formato´;
[/quote:9a16363abb]
obrigado, funcionou 100¬


Responder

Gostei + 0

12/08/2006

Marco Salles

Show de bola....

Mas deixa eu so corrigir o meu post atras quando sugeri

apos criar o campo do tipo TfloatFiled , Tente fazer.. Código: gmov.FieldByName(´Campo1´).AsCurrency:=True;


esta errado... O Certo é assim :

[b:793c0af239]TFloatField(gmov.FieldByName(´Campo´)).Currency:=True;[/b:793c0af239]

Estranhei voce ter falado que :

[b:793c0af239]isso eu ja fiz[/b:793c0af239], mas ai fica o R$, e nao serve porque e quantidades com decimais.
..

Do jeito inicial que eu passei , nen compilar compila... Mas [b:793c0af239]é so para ficar registrado[/b:793c0af239] o importante que deu tudo certo :P :P :P

Bleza....


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar