pegar valor digitado em um DBEdit
02/02/2006
0
Tenho uma lista de variáveis em meu sistema do tipo Currency (moeda), então... em um determinado momento eu estava precisando pegar estes valores que estão sendo digitados em dbedits, dbedit1, dbedit2, dbedit3, dbedit4, dbedit5 e somar para exibir no dbeditsoma, mas não consigo tirar estes valores dos dbedit´s e somar. Se alguém puder me ajudar fico muito grato. Obrigado.
Estou no momento usando assim:
var
p1, p2, p3, p4, p5, pmedia : Currency;
begin
Table1.Post;
p1 := Form66.Table1.FieldValues[´Prod_d1´];
p2 := Form66.Table1.FieldValues[´Prod_d2´];
p3 := Form66.Table1.FieldValues[´Prod_d3´];
p4 := Form66.Table1.FieldValues[´Prod_d4´];
p5 := Form66.Table1.FieldValues[´Prod_d5´];
pmedia := p1+p2+p3+p4+p5;
CurrToStr(pmedia);
EditTotal_diaria.Text := (Formatfloat(´R$#0.00´,(pmedia)));
IF application.MessageBox(´Deseja salvar o registro?´,´Confirme´,
mb_yesNo + mb_iconquestion + mb_defbutton1) = idYes THEN
Begin
Table1.Refresh;
BitBtn6.Enabled := True;
BitBtn7.Enabled := True;
BitBtn8.Enabled := True;
O problema é que o sistema faz o q quero mostrando e inserindo no bdedittotal_diaria o total, mas fecho o form ou simplesmente mudo de registro e o valor calculado some. Usei a propriedade FieldValues[´....´]; sei que a mesma os valores tem q serem salvos mas não achei outra forma de tirar os valores a não ser esta. Mais uma vez obrigado pela ajuda e desculpe ser tão extensa minha pergunta.
Gtts
Posts
02/02/2006
Rjun
02/02/2006
Gtts
02/02/2006
Rjun
03/02/2006
Emerson Nascimento
coloque isso no OnDataChange do seu datasource e veja se dá certo:
p1 := dbedit1.field.asfloat;
p2 := dbedit2.field.asfloat;
p3 := dbedit3.field.asfloat;
p4 := dbedit4.field.asfloat;
p5 := dbedit5.field.asfloat;
pmedia := (p1+p2+p3+p4+p5) / 5;
torne a variável [i:8b65bdcd0b]pmedia[/i:8b65bdcd0b] private, assim ela poderá ser ´vista´ em qualquer local da unit.
se você optar por usar campo calculado...
é necessário que seus campos sejam persistentes.
- dê um duplo-clique no seu dataset
- se ainda não há campos na lista, pressione CTRL+A e selecione os campos desejados
- pressione CTRL+N (New Field...) e, em:
[i:8b65bdcd0b]Field Name[/i:8b65bdcd0b], digite pmedia (ou outro nome que lhe pareça melhor)
[i:8b65bdcd0b]Type[/i:8b65bdcd0b], selecione Float
[i:8b65bdcd0b]Field Type[/i:8b65bdcd0b], selecione Calculated
- clique em Ok.
o campo calculado está criado. agora precisamos fazer o cálculo propriamente dito.
no evento OnCalcFields do dataset, faça:
datasetPMEDIA.AsFloat := (datasetProd_d1.AsFloat + datasetProd_d2.AsFloat + datasetProd_d3.AsFloat + datasetProd_d4.AsFloat + datasetProd_d5.AsFloat ) / 5;
agora ponha um dbedit, aponte-o para o campo PMedia recém criado, execute o programa e veja o resultado.
Clique aqui para fazer login e interagir na Comunidade :)