Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
Guest Vagner Franco Moreira

Db Paradox

Question

Guest Vagner Franco Moreira

:huh:

me ajudem, estou começando no delphi e quero saber como calcular valores de um campo na tabela automaticamente.

:huh:

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Posta um exemplu du que voce quer fazer cara, assim fica maix simples, existem varias formas di si fazeh alguma coisa, tudo depende de que exatamente o q voce keh...

Share this post


Link to post
Share on other sites
  • 0
Guest Vagner

:huh:

quero saber como faço para...

Colocar no form 3 edts

edit1 - valor 1

edit2 - valor 2

edit3 - resultado automático da soma ou / - *.

:huh:

Share this post


Link to post
Share on other sites
  • 0

Bom, como você falou edits, vou te dá um exemplo de calculos com edits, beleza? ^__^

tipo assim cara, como você já deve saber, edits guardam valores do tipo String, e como o Delphi não faz a conversão automática de tipoes, logo, para fazer calculos com esse valores, você deve converte-los, ficaria mais ou menos assim:

var

valor1, valor2, resultado: integer;

begin

//este exemplo consiste no calculo de numeros inteiros

valor1 := StrToInt(edit1.text);

valor2 := StrToInt(edit2.text);

resultado := valor1 + valor2; //fazendo o calculo...

edit3.text := IntToStr(resultado); //convertendo o valor novamente pra string e assinando o edit...

end;

nesse exemplo acima, usamos duas converções, primeiro usamos a função StrToInt que seria String To Integer (caracteres para inteiro), fizemos o calculo e jogamos o valor inteiro novamente para string com a funcao: IntToStr... intendeu?

Se você necessitasse de calculos com números decimais, basta trocar as funções StrToInt por StrToFloat e IntToStr por FloatToStr...

intendeu cara?

uma ultima coisa, para somar utilizamos o +, diminuir: - e multiplicar: *, agora no caso da Divisão existem duas maneiras, quando for divisao de inteiros utilizasse o div e quando for divisao de numeros com ponto flutuante é a /

Espero que tenha te dado uma luz, caso contrario, posta maix aew perguntando, hehe ^^'''''

Share this post


Link to post
Share on other sites
  • 0
valeu cara! este código eu tenho, mas preciso de algo que calcule os valores de um campo da minha tabela.

exemplo: na minha tbl tem um campo chamado "Valor" do timpo string mesmo. coloquei como Alpha só para testar.

e outros dois campos chamados:

Tbl1_Data : do tipo Date

Tbl1_Descricao : do tipo Alpha

a tbl fica assim

Data ----------- Descrição ------------- Valor

01/01/01          Receita                    12,00

02/01/01          Receita                    10,00

03/01/01          Receita                    15,00

                                    DBEdit1 :=  37,00

quero uma função que some automaticamente os valores

do campo Tbl1_Valor para que eu possa colocá=lo num

DBEdit.

thanks for help, friend...

vagner franco - DELPHI-Man32

Hehe... inicialmente pensei que você quisesse issow, mas pedi pra você especificar melhor pra ter certeza...

cara, é o seguinte, agora me veio duas maneiras em mente de se fazer issow:

antes de maix nada, você deve saber a diferença entre um Edit e um DBEdit e também deve saber quando melhor utilizar um ou o outro, nesse caso o melhor a ser utilizado é um Edit, pois o valor dessa soma serve puramente para exibição...

Vamos fazer intom o seguinte, a primeira maneira é:

- Fazer uma varredura na tabela desejada somando todus os valores, algo assim:

var
  resultado: Double;
begin
  //considerando q sua tabela se chame table1
  table1.first;
  resultado := 0;

  while not table1.eof do
  begin
    resultado := resultado + table1.fieldbyname('tbl1_valor').asFloat;
    table1.next;
  end;

  edit1.text := FloatToStr(resultado);
end;
Essa seria uma maneira de se fazer isso, acho essa maneira bem básica e não gosto de utilizá-la, pois é meio lenta dependendo do tamanho que a tabela se encontra uma forma maix útil de ser feito esse processo que você quer, é atraves de SQL, mas antes de montar o código, seria beeeeem melhoh que o campo tbl1_valor ao invés de Alpha fosse do tipow Numérico, e de preferencia com suporte a casas decimais nesse caso, pois assim não precisariamos fazer a conversao agora na nossa query SQL, todo campo que vá guardar números e que futuramente vá ser utilizado para calculos é recomendavel que seja utilizado o tipow numerico, agora se o numero não vai ser utilizado para calculo algum, como código ou algo assim, nom há problema por Alpha, agora vamos ao SQL:
var
  resultado: Double;
  Sql_query: String;
begin
  Sql_query := "SELECT SUM(CAST(tbl1_valor AS FLOAT(6,2))) AS total FROM Nome_da_table"
  query.sql.text := Sql_query;
  query1.open;
  
  edit1.text := query1.fieldbyname('total').text;

  query1.close;
end;

Bom... é issow aew, no momentu só mi vieram essas duas ideias na cabeça cara ^__^v

Espero que lhe ajude, caso você nom intenda algo que coloquei, é só perguntar, eu ti ixplico cada parte com detalhes se for preciso...

falows cara :D

Share this post


Link to post
Share on other sites
  • 0

quero ue você mande uma unit com a função que usa query completa só para tirar minhas duvidas.

mas a primeira maneira que você falow q era lenta funcionou!

não sei se coloquei no evento certo.

AfterPost e BeforeInsert só funfionou assim.

mas valeu cara.

se precisar estamos aehhhh

Aew cara... o exemplo aew

EXEMPLO

Share this post


Link to post
Share on other sites
  • 0

Pow cara, clica com o botao direito no link, e vai na opcao Salvar destino como..., você pode estranhah, porque ele vai salvar o arquivo como htm, mas deve se um problema do servidor com arquivos rar, daew tu muda a extensao de HTM pra RAR, e depois descompacta....

aeeeeeew, você vai precisah do WINRAR, lá no supedownloads tem... falowwwwws

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148495
    • Total Posts
      644146
×
×
  • Create New...