Formatar BDText´s
Como formato um DBText para valores monetários, tipo mostrar ao menos 2 casas decimais sempre ou 3 ... nao precisa o sinal de R$ ?
Tuskinhu
Curtidas 0
Respostas
Renato_sp
10/02/2005
Defini o campo do tipo numeric (12,2) e no delphi coloca a propriedade do TField como currency para true que o proprio delphi poe a mascara
R$ 0,00, espero ter ajudado..
Falow
Renato/SP
R$ 0,00, espero ter ajudado..
Falow
Renato/SP
GOSTEI 0
Tuskinhu
10/02/2005
Nao entendi como fazer.. vou colocar como eu estou usando...
DBExpress ( SqlConnection -> SQLQuery -> DataProvider -> CliDataSet -> DataSource )
Destes somente o DataSource esta na tela da consulta e o resto em um data module...
Aqui como eu uso o código:
Onde encaixo essas mudanças?? NO caso o nome do campo q eu quero aplicar é TOTAL_PRESTACAO para que saia com 2 casas.
DBExpress ( SqlConnection -> SQLQuery -> DataProvider -> CliDataSet -> DataSource )
Destes somente o DataSource esta na tela da consulta e o resto em um data module...
Aqui como eu uso o código:
try Bd.CtoCDS.Close; with BD.CtoQry do begin Close; SQL.Clear; SQL.Text := ´Select CTO.SERIE, CTO.EMISSAO, ...´ end; // Qry Bd.CtoCDS.Open; except on E: Exception do begin MsgError(´Erro na consulta de dados do conhecimento.´ + #1313 + ´SQL: ´ + Bd.CtoQry.SQL.Text + 1313 + ´Erro compilador: ´ + E.Message ); end; end;
Onde encaixo essas mudanças?? NO caso o nome do campo q eu quero aplicar é TOTAL_PRESTACAO para que saia com 2 casas.
GOSTEI 0
Fsflorencio
10/02/2005
O Renato_SP disse para alterar no fieldlist da query a propriedade currency do field que vc deseja alterar.
Se vc não quiser que apareça o símbolo monetário, vc pode colocar na propriedade EditFormat e DisplayFormat do TField o seguinte: #,0.00 que ele vai ficar formatado com duas casas decimais.
Se vc não quiser que apareça o símbolo monetário, vc pode colocar na propriedade EditFormat e DisplayFormat do TField o seguinte: #,0.00 que ele vai ficar formatado com duas casas decimais.
GOSTEI 0
Renato_sp
10/02/2005
É isso ae... fsflorencio, acho que a melhor forma de se fazer isso é como definimos !!! tanto com R$ ou nao... é o mais pratico...
:D
Renato / SP
:D
Renato / SP
GOSTEI 0
Rodolpho123
10/02/2005
Lembrando que a propriedade [b:0b26b4ed2a]Currency[/b:0b26b4ed2a] lê o a formatação monetária do Windows, e a DisplayFormat fica [b:0b26b4ed2a]fixa[/b:0b26b4ed2a] no código. Caso um dia a moeda mude de formato, o [b:0b26b4ed2a]DisplayFormat[/b:0b26b4ed2a] vai ter que mudar tmb....
GOSTEI 0
Tuskinhu
10/02/2005
mas os TFields nao aparecem pra mim, pq o comando SQL só é executado em runtime, e nao em design, e eu nao sei como se adiciona em runtime,, se vc puder me colocar um exemplo..
GOSTEI 0
Gandalf.nho
10/02/2005
Use FieldByName para se referir aos Fields em tempo de execução e setar suas propriedades
GOSTEI 0
Tuskinhu
10/02/2005
acho que o carnaval me deixou lento... nao consegui achar como colocar as configuracoes...
vc pode me dar o exemplo?
DataModule: BD
ClientDataSet:CtoCDS
ai eu usaria Bd.CtoCDs.FieldByName(´Total_Prestacao´)....
dai eu nao consegui mais nada...
vc pode me dar o exemplo?
DataModule: BD
ClientDataSet:CtoCDS
ai eu usaria Bd.CtoCDs.FieldByName(´Total_Prestacao´)....
dai eu nao consegui mais nada...
GOSTEI 0
Afarias
10/02/2005
BD.CtoCDs.FieldByName(´Total_Prestacao´).Currency := True;
ou
BD.CtoCDs.FieldByName(´Total_Prestacao´).DisplayFormat := ´R$ ,#0.00´;
T+
ou
BD.CtoCDs.FieldByName(´Total_Prestacao´).DisplayFormat := ´R$ ,#0.00´;
T+
GOSTEI 0
Tuskinhu
10/02/2005
AFarias:
BD.CtoCDs.FieldByName(´Total_Prestacao´).Currency := True;
Erro: Undeclared Identifier : ´Currency´
ou
BD.CtoCDs.FieldByName(´Total_Prestacao´).DisplayFormat := ´R$ ,#0.00´;
Erro: Undeclared Identifier : ´DisplayFormat´
Deram erros os 2!
BD.CtoCDs.FieldByName(´Total_Prestacao´).Currency := True;
Erro: Undeclared Identifier : ´Currency´
ou
BD.CtoCDs.FieldByName(´Total_Prestacao´).DisplayFormat := ´R$ ,#0.00´;
Erro: Undeclared Identifier : ´DisplayFormat´
Deram erros os 2!
GOSTEI 0
Afarias
10/02/2005
Deve ser por causa do tipo de campo (TField)
não são todos eles q tem essas propriedades -- por exemplo, campos ´texto´ (TStringField) não tem.
T+
não são todos eles q tem essas propriedades -- por exemplo, campos ´texto´ (TStringField) não tem.
T+
GOSTEI 0
Rodolpho123
10/02/2005
Tuskinhu, tente fazer isto no evento [b:287da49f0f]AfterOpen[/b:287da49f0f] do seu Cds:
TFloatField( DataSet.FieldByName.(´SEUCAMPO´) ).DisplayFormat := ´R$ #,0.00´; ou TFloatField( DataSet.FieldByName.(´SEUCAMPO´) ).Currency := True;
GOSTEI 0
Tuskinhu
10/02/2005
Rodolpho123, valeu mesmo !!! Funcionou como eu desejava !!!
Obrigado a vc e ao AFarias pela ajuda !!!!
Abraços!!!!
Obrigado a vc e ao AFarias pela ajuda !!!!
Abraços!!!!
GOSTEI 0