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

Ajuda por favor.. onde esta o erro (RESOLVIDO)


maudozo01

Pergunta

procedure TFMVendas.DBEdit5Exit(Sender: TObject);

var

conta:integer;

valor:real;

begin

dmvendas.SimpleDataSetvendas.FieldByName('data_vnd').AsDateTime:=

(datetimepicker1.DateTime);

dmvendas.SimpleDataSetitens.FieldByName('data_itens').AsDateTime:=

(datetimepicker1.DateTime);

dmvendas.SimpleDataSetItens.FieldByName('adicional').AsString:=

dmvendas.SimpleDataSetItens.FieldByName('nomeproduto').AsString;

conta:=dmvendas.SimpleDataSetitens.fieldByname('codigo_itens').asinteger + 1;

dmvendas.SimpleDataSetitens.FieldByName('codigo_pro').AsFloat:=

dmvendas.SimpleDataSetitens.FieldByName('codigoproduto').AsFloat;

dmvendas.SimpleDataSetitens.FieldByName('valor_pro').Asfloat:=

dmvendas.SimpleDataSetitens.FieldByName('valorproduto').Asfloat *

dmvendas.SimpleDataSetitens.FieldByName('qtda_itens').Asfloat;

valor:= dmvendas.SimpleDataSetItens.fieldbyname('valor_pro').asfloat;

dmvendas.SimpleDataSetitens.Append;

dmvendas.SimpleDataSetitens.fieldByname('codigo_itens').asfloat:= conta;

dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat:=

dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat + valor;

dbedit4.SetFocus;

end;

end.

o erro e o seguinte o valor da variavel Valor zera depois do append e o totalvendas so me traz o utimo valor oque sera q esta errado

Editado por maudozo01
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

dmvendas.SimpleDataSetitens.FieldByName('valor_pro').Asfloat:=
dmvendas.SimpleDataSetitens.FieldByName('valorproduto').Asfloat *
dmvendas.SimpleDataSetitens.FieldByName('qtda_itens').Asfloat;

Tenta colocar este calculo em uma variavel antes.

Link para o comentário
Compartilhar em outros sites

  • 0
o erro e o seguinte o valor da variavel Valor zera depois do append e o totalvendas so me traz o utimo valor oque sera q esta errado

dmvendas.SimpleDataSetitens.Append;

dmvendas.SimpleDataSetitens.fieldByname('codigo_itens').asfloat:= conta;

dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat:=

dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat + valor;

[code]

Voce está trabalhando diretamente com os campos da sua tabela.

O que acontece quando voce dá o append ? o ponteiro do registro vai para um registro vazio e consequentemente os valores que existiam no registro anterior somem, por isso o valor da variavel Valor zera.

Como disse o Pirambu use variaveis para efetuar os calculos e somente depois atribua o valor ao campo de sua tabela

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

galera fiz isso q me falaram mais nada joguei todos os valores em variaveis e fiz os calculos e nadas as variaveis zerao de pois do append ta dificil já ate joguei em um campo de calculo de outra tabela mesmo assim zera as variaveis

obs.: so não zera quando a variavel e integer mas ele so soma os valores inteiro os centavos ele descarta

já não sei o que fazer meu sistema esta parado por causa deste calculo................

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo vamos lá como os nossos dois colegas falaram quando se da um append o registro vai para um novo correto e zera todos os valores, execto o da variavel pois esta armazenado, o problema se você entrar no campo e sair dele ele irá zerar a varialvel ao invés de atualizar temta este codigo que postei abaixo e ve se resolve.

primeiramente crie a variavel como global ao invés de ser encapsulada.

procure no .pas e acrescente = abaixo.

var

FMVendas : TFMVendas;

conta:integer;

valor:real;

Depois no on actvate do form ou quando iniciar uma nova venda coloque assim

procedure FMVendas.FormActivate(Sender: TObject);

begin

conta :=0;

valor :=0l;

end;

e agora no onexit do DBEdit5Exit coloque assim

procedure TFMVendas.DBEdit5Exit(Sender: TObject);

begin

dmvendas.SimpleDataSetvendas.FieldByName('data_vnd').AsDateTime:=

(datetimepicker1.DateTime);

dmvendas.SimpleDataSetitens.FieldByName('data_itens').AsDateTime:=

(datetimepicker1.DateTime);

dmvendas.SimpleDataSetItens.FieldByName('adicional').AsString:=

dmvendas.SimpleDataSetItens.FieldByName('nomeproduto').AsString;

conta:= conta + dmvendas.SimpleDataSetitens.fieldByname('codigo_itens').asinteger + 1;

//o + 1 que esta ai em cima imagino que não precisa mais deixei pois já estava no seu codigo

dmvendas.SimpleDataSetitens.FieldByName('codigo_pro').AsFloat:=

dmvendas.SimpleDataSetitens.FieldByName('codigoproduto').AsFloat;

dmvendas.SimpleDataSetitens.FieldByName('valor_pro').Asfloat:=

dmvendas.SimpleDataSetitens.FieldByName('valorproduto').Asfloat *

dmvendas.SimpleDataSetitens.FieldByName('qtda_itens').Asfloat;

valor:= valor + dmvendas.SimpleDataSetItens.fieldbyname('valor_pro').asfloat;

dmvendas.SimpleDataSetitens.Append;

dmvendas.SimpleDataSetitens.fieldByname('codigo_itens').asfloat:= conta;

dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat:=

dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat + valor;

dbedit4.SetFocus;

end;

imagino que agora resolva mais qualquer coisa posta ai que estaremos aqi para te ajudar.

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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...