Clientdataset em tempo de execução...
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;
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
Curtidas 0
Respostas
Marco Salles
11/08/2006
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
GOSTEI 0
Logos
11/08/2006
[quote:b99a2e216a=´Marco Salles´]
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.
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.
GOSTEI 0
[ro]
11/08/2006
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´;
if (ClientDataSet1.FieldByName(´teste´).DataType = ftFloat) then
TNumericField(ClientDataSet1.FieldByName(´teste´)).displayFormat := ´#0.00´;
GOSTEI 0
Marco Salles
11/08/2006
apos criar o campo do tipo TfloatFiled , Tente fazer..
gmov.FieldByName(´Campo1´).AsCurrency:=True;
GOSTEI 0
Logos
11/08/2006
[quote:1a174f80bf=´Marco Salles´]apos criar o campo do tipo TfloatFiled , Tente fazer..
[/quote:1a174f80bf]
isso eu ja fiz, mas ai fica o R$, e nao serve porque e quantidades com decimais.
gmov.FieldByName(´Campo1´).AsCurrency:=True;
isso eu ja fiz, mas ai fica o R$, e nao serve porque e quantidades com decimais.
GOSTEI 0
Marco Salles
11/08/2006
sentão faça assim :
TFloatField(cds.FieldByName(´Campo´)).displayFormat:=´aqui so seu Formato´;
TFloatField(cds.FieldByName(´Campo´)).displayFormat:=´aqui so seu Formato´;
GOSTEI 0
Marco Salles
11/08/2006
Desculpe , eu não tiro o cds da cabeça ...
TFloatField(gmov.FieldByName(´Campo´)).displayFormat:=´aqui o seu Formato´;
GOSTEI 0
Logos
11/08/2006
[quote:9a16363abb=´Marco Salles´]Desculpe , eu não tiro o cds da cabeça ...
[/quote:9a16363abb]
obrigado, funcionou 100¬
TFloatField(gmov.FieldByName(´Campo´)).displayFormat:=´aqui o seu Formato´;
obrigado, funcionou 100¬
GOSTEI 0
Marco Salles
11/08/2006
Show de bola....
Mas deixa eu so corrigir o meu post atras quando sugeri
esta errado... O Certo é assim :
[b:793c0af239]TFloatField(gmov.FieldByName(´Campo´)).Currency:=True;[/b:793c0af239]
Estranhei voce ter falado que :
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....
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....
GOSTEI 0