maudozo01 Postado Junho 8, 2009 Denunciar Share Postado Junho 8, 2009 (editado) procedure TFMVendas.DBEdit5Exit(Sender: TObject);varconta:integer;valor:real;begindmvendas.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 Junho 9, 2009 por maudozo01 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirambu! Postado Junho 8, 2009 Denunciar Share Postado Junho 8, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 8, 2009 Denunciar Share Postado Junho 8, 2009 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 erradodmvendas.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 tabelaabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 maudozo01 Postado Junho 8, 2009 Autor Denunciar Share Postado Junho 8, 2009 vlw aos dois vou tentar isso e mas tarde dou um aviso se funcionou falew.................. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 maudozo01 Postado Junho 9, 2009 Autor Denunciar Share Postado Junho 9, 2009 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 variaveisobs.: 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................ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William - TI Postado Junho 9, 2009 Denunciar Share Postado Junho 9, 2009 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 assimprocedure FMVendas.FormActivate(Sender: TObject);begin conta :=0; valor :=0l;end;e agora no onexit do DBEdit5Exit coloque assimprocedure TFMVendas.DBEdit5Exit(Sender: TObject);begindmvendas.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 codigodmvendas.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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 maudozo01 Postado Junho 9, 2009 Autor Denunciar Share Postado Junho 9, 2009 primeiramente crie a variavel como global ao invés de ser encapsulada.Vlw................................. :D William deu certo me ajudou muito e obrigado a todos q me ajudaram vlw mesmo :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
maudozo01
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 maudozo01Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.