Preço de venda acrescido da margem de lucro
Ola pessoal , sou um estudante de informatica, estou fazendo um trabalho em delphi 7, gostaria de fazer uma operação na janela de cadastro de produto, quando digitar o valor de compra (Campo1), e margem de lucro (Campo2) obtenho o preço de venda ( Campo3) .
Alguem pode me ajudar? desde já agradeço.
Estou usado banco de dados InterBase.
Alguem pode me ajudar? desde já agradeço.
Estou usado banco de dados InterBase.
Jmotec1
Curtidas 0
Respostas
Micheus
07/09/2006
[b:3eb317f5f8]jmotec1[/b:3eb317f5f8], vc está utilizando componentes DBEdit para informar os campos?
Se sim, e considerando que seu dataset chame-se TabProduto, uma alternativa seria criar um procedimento para realizar o cálculo (CalculaCampo3) e no evento OnExit dos campos 1 e 2, após verificar alteração de seu valor, chamar o procedimento para calcular o campo3 (considerando que o usuário não poderá digitá-lo):
Se sim, e considerando que seu dataset chame-se TabProduto, uma alternativa seria criar um procedimento para realizar o cálculo (CalculaCampo3) e no evento OnExit dos campos 1 e 2, após verificar alteração de seu valor, chamar o procedimento para calcular o campo3 (considerando que o usuário não poderá digitá-lo):
procedure FormCadastroProduto.CalculaCampo3; begin TabProdutoCAMPO3.Value := TabProdutoCAMPO1.AsFloat + (TabProdutoCAMPO1.AsFloat *TabProdutoCAMPO2.AsFloat/100); end; -> evento OnExit DBEdit Campo1 begin if TabProdutoCAMPO1.Value <> TabProdutoCAMPO1.OldValue then CalculaCampo3; end; -> evento OnExit DBEdit Campo2 begin if TabProdutoCAMPO2.Value <> TabProdutoCAMPO2.OldValue then CalculaCampo3; end;
GOSTEI 0
Marco Salles
07/09/2006
gosto muito de fazer isto no evento onchange dos dois DbEdits , aonde esses dois DbEdits utilizem o mesmo manipulador de evento OnChange
é so no objecto inspectoro do primeiro , no evento onchange , alterar o nome e depois no evento onchange do segundo atribuir o mesmo evento
é so no objecto inspectoro do primeiro , no evento onchange , alterar o nome e depois no evento onchange do segundo atribuir o mesmo evento
procedure TForm1.DBEditMesmoManipularorOnChange(Sender: TObject); var valor,lucro:Extended; begin if TryStrToFloat(DbEdit1.Text,valor) then begin if TryStrToFloat(DbEdit2.Text,Lucro) then dbedit3.Text:=formatFloat(´0.00´,valor*Lucro) else dbedit3.Text:=formatFloat(´0.00´,0); end else dbedit3.Text:=formatFloat(´0.00´,0); end;
GOSTEI 0
Alexdetonator
07/09/2006
Grande Marco Salles,
sou iniciante no Delphi e sua dica me ajudou bastante nesse tipo de cálculo.
Tenho uma dúvida em relação a esse cálculo quando uso um somatório num DBGrid e apresento num DBEdit. Como posso atualizar tambem essa soma no DBGrid e apresenta-la no DBEdit ?
Obrigado
sou iniciante no Delphi e sua dica me ajudou bastante nesse tipo de cálculo.
Tenho uma dúvida em relação a esse cálculo quando uso um somatório num DBGrid e apresento num DBEdit. Como posso atualizar tambem essa soma no DBGrid e apresenta-la no DBEdit ?
Obrigado
GOSTEI 0
Marco Salles
07/09/2006
Tenho uma dúvida em relação a esse cálculo quando uso um somatório num DBGrid e apresento num DBEdit. Como posso atualizar tambem essa soma no DBGrid e apresenta-la no DBEdit ?
o que seria este somatorio no DbGrid amigo alexdetonator ,
isto geralmente é feito usando um[b:f997618f97] campo calculado[/b:f997618f97]..
seria este o seu caso ?????
GOSTEI 0
Alexdetonator
07/09/2006
Grande Marco,
Em uma tela do meu formulario ´orcamento´ tenho um dbgrid com mao de obra de servicos contendo ´servico - qtde horas - val unitario - val total´
já consegui jogar para um edit5.text o valor total desses servicos, porem quando adiciono um item ao dbgrid só estou conseguindo ver atualizado quando fecho e abro novamente o meu form orcamento (formshow).
Obrigado
Em uma tela do meu formulario ´orcamento´ tenho um dbgrid com mao de obra de servicos contendo ´servico - qtde horas - val unitario - val total´
já consegui jogar para um edit5.text o valor total desses servicos, porem quando adiciono um item ao dbgrid só estou conseguindo ver atualizado quando fecho e abro novamente o meu form orcamento (formshow).
Obrigado
GOSTEI 0
Marco Salles
07/09/2006
já consegui jogar para um [b:fa42c711b5]edit5.text [/b:fa42c711b5]o valor total desses servicos, porem quando adiciono um item ao dbgrid só estou conseguindo ver atualizado quando fecho e abro novamente o meu form orcamento (formshow).
na sua duvida inicial voce diz em :
Como posso atualizar tambem essa soma no DBGrid e apresenta-la no [b:fa42c711b5]DBEdit[/b:fa42c711b5] ?
netes tópico voce diz:
já consegui jogar para um [b:fa42c711b5]edit5.text [/b:fa42c711b5]
estou meio confuso..
mas vou arriscar um palpite
voce pode usar os evento onvalidade dos campos
qtde horas e val unitario
Tipo isso:
procedure TForm1.SeuDataSetGeralValidate(Sender: TField);
begin
SeuDataSetTotal.AsCurrency:=SeuDataSetValor_unitario.AsCurrency*
SeuDataSetQtde_horas.Asfloat;
edit1.Text:=currencyString+formatFloat(´0.00´,cdsTotal.AsCurrency);
end;
lo lugar do edit voce pode usar um DbEdit (Controle DataWare)
usando esse modelo , voce deve definir o Tfield(Total) com readOnley=True
e usando o edit voce deve usar o evento AfterScrool do seu SeuDataSet para atualizar o valor do edit sempre que voce rolar pela Grade
procedure TForm1.SeuDataSetAfterScroll(DataSet: TDataSet);
begin
edit1.Text:=currencyString+formatFloat(´0.00´,cdsTotal.AsCurrency);
end;
2) O outro modelo é usar um campo calculado
GOSTEI 0