Ir para conteúdo
Fórum Script Brasil
  • 0

Db Paradox


Guest Vagner Franco Moreira

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 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 ^^'''''

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...