Fórum Valores Financeiras (com virgulas) em um DBEDIT #347727
23/10/2007
0
Em minha aplicação estou travando a digitação de teclas diferente das de valores numéricos em um DBEDIT, no DATASET inclusve eu marquei a propriedade CURRENT para TRUE para que o mesmo traga o sinal de R$ e as virgulas necessárias.
O problema que tenho são dois...
1 - Quando usso o CURRENT, ele não permite valor monetário negativo (meio óbvio) nesse caso terei que substituir por um DBMASK? Eu preciso gravar valores negativos tbm.
2 - Existe um meio do DBEDIT entender e considerar os centavos sem que eu tenha que digitar a virgula? Se existe, como faço isso?
Agradeço desde já.
cgomesnet
Cgomesnet
Curtir tópico
+ 0Posts
23/10/2007
Marco Salles
Deveria permitir sim.... Desabilite na aplocação o Travamento da Tecla
referente ao sinal negativo que deve funcionar sim
Formate o evento OnSrtText do CAmpo em questão
if pos(decimalseparator,text) < 0 Then //Para o caso de dois decimais divida por 100 sender.AsCurrency:=sender.AsCurrency/100 else sender.AsString:=text;
Gostei + 0
23/10/2007
Cgomesnet
Deveria permitir sim.... Desabilite na aplocação o Travamento da Tecla
referente ao sinal negativo que deve funcionar sim
Formate o evento OnSrtText do CAmpo em questão
if pos(decimalseparator,text) < 0 Then //Para o caso de dois decimais divida por 100 sender.AsCurrency:=sender.AsCurrency/100 else sender.AsString:=text;
O Marcos, obrigado pela ajuda...
Com relação ao valor negativo o firebird 2.0 não deixa mesmo, eu nem preciso do sinal negativo, eu estou multiplicado o (dataset.nomedocampo * -1) para gravar, ai ele retorna mensagem de erro de tivo de dados (estou usando numeric(7,2).
Com relação as demais dicas que você deu, asssim que eu chegar em casa irei testar.
Obrigado por enquanto.
Gostei + 0
23/10/2007
Marco Salles
eu nen sabia que voce estava usando o firibird 2.0
eu uso ainda o 1.5 e não tem problemas com numeros negativos
Pergunta que eu façp a voce é se atraves do [b:3516b8ab63]IbExpert [/b:3516b8ab63], ao inserir um valor negativo ele tb da este erro :?: :?: :?: ou é so atraves do seu
aplicativo :?: :?: :?:
Gostei + 0
23/10/2007
Cgomesnet
eu nen sabia que voce estava usando o firibird 2.0
eu uso ainda o 1.5 e não tem problemas com numeros negativos
Pergunta que eu façp a voce é se atraves do [b:2bcbc90e2e]IbExpert [/b:2bcbc90e2e], ao inserir um valor negativo ele tb da este erro :?: :?: :?: ou é so atraves do seu
aplicativo :?: :?: :?:[/quote:2bcbc90e2e]
Olá Marco
O erro é no banco, porque quando ele acontece é o firebird que retorna o erro, não é uma mensagem do Delphi (se fosse não teria compilado eu imagino).
Lembrando que o erro só acontece se usar negativo em um campo da tabela que esteja marcado pelo dataset como CURRENT.
Gostei + 0
23/10/2007
Marco Salles
Kara , engraçado voce fala que o erro é do banco , depois voce diz que so
acontece se o seu campo no seu aplicativo tiver marcado como currency
[b:bb2fc2b818]Afinal se voce , usando o IBexpert por exemplo , ir na tabela e digitar um
valor negativo para o campo Numeric(9,2) , voce consiguira ou não
commitar esta alteração[/b:bb2fc2b818]
Caso Commite
a gente parte do Erro seu aplicatido < driver de acesso , codigo
utilixado etcc...>
Caso Não Commite
a gente parte do Erro do Banco <o que acredito ser pouco provável>
Gostei + 0
24/10/2007
Cgomesnet
Kara , engraçado voce fala que o erro é do banco , depois voce diz que so
acontece se o seu campo no seu aplicativo tiver marcado como currency
[b:ec8643163f]Afinal se voce , usando o IBexpert por exemplo , ir na tabela e digitar um
valor negativo para o campo Numeric(9,2) , voce consiguira ou não
commitar esta alteração[/b:ec8643163f]
Caso Commite
a gente parte do Erro seu aplicatido < driver de acesso , codigo
utilixado etcc...>
Caso Não Commite
a gente parte do Erro do Banco <o que acredito ser pouco provável>[/quote:ec8643163f]
Pode deixar, essa semana irei testar o que conversamos e deixarei aqui o que aconteceu.
Valeu pelas dicas.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)