Valores Financeiras (com virgulas) em um DBEDIT
Olá a todos
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
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
Curtidas 0
Respostas
Marco Salles
23/10/2007
Em minha aplicação estou travando a digitação de teclas diferente das de valores numéricos
1 - Quando usso o CURRENT, ele não permite valor monetário negativo
Deveria permitir sim.... Desabilite na aplocação o Travamento da Tecla
referente ao sinal negativo que deve funcionar sim
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?
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
Cgomesnet
23/10/2007
[quote:40d7de6690=´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
[/quote:40d7de6690]
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.
Em minha aplicação estou travando a digitação de teclas diferente das de valores numéricos
1 - Quando usso o CURRENT, ele não permite valor monetário negativo
Deveria permitir sim.... Desabilite na aplocação o Travamento da Tecla
referente ao sinal negativo que deve funcionar sim
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?
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
Marco Salles
23/10/2007
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).
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
Cgomesnet
23/10/2007
[quote:2bcbc90e2e=´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: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.
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).
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
Marco Salles
23/10/2007
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.
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
Cgomesnet
23/10/2007
[quote:ec8643163f=´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: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.
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.
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