Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marostegan

[Resolvido] tela de vendas

Recommended Posts

galerinha... to montando uma tela de vendas aqui no meu sistema.. mas está dando um erro que nao consigo resolver de jeito nenhum... =///

 

alguém pode me ajudar?

 

 

o erro é o seguinte.... ao incluir um produto na lista da o seguinte erro:

 

EDatabaseError with message 'q_vendas_detal: Cannot perform this operation on a closed datset'. Process stopped.

 

a programação do botão está assim:

 

procedure Tf_incluir_vendas.SpeedButton7Click(Sender: TObject);
var
soma1: Double;
begin
soma1 := 0;
edt_venc_garantia.text := dbe_venc_garantia.text;
begin
dm.q_vendas_detal.Close;
dm.q_vendas_detal.SQL.Clear;
dm.q_vendas_detal.SQL.Add('Insert into tbl_vendas_detalhes(id_ligacao, cod_prod, produto, valor_uni, quant, valor_total, valor_final, valor_desc, venc_garantia, descont) values ('''+edt_codigo.Text+''','''+edt_codprod.Text+''','''+edt_produtos.Text+''','''+edt_valor_uni.Text+''','''+dbe_quant.Text+''','''+dbe_valor_total.Text+''','''+dbe_valor_final.Text+''','''+dbe_valor_desc.Text+''','''+edt_venc_garantia.Text+''','''+dbe_desconto.Text+''')');
dm.q_vendas_detal.ExecSQL;
dm.t_vendas_detal.Requery;
end;
begin
dm.q_vendas_detal.First;
with dm.q_vendas_detal do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_vendas_detalhes where id_ligacao like'''+ dbe_codigo.Text + '%''');
  Open;

  while not dm.q_vendas_detal.Eof do

begin
  soma1 := soma1 + dm.q_vendas_detal.Fieldbyname('valor_final').Value;
  dm.q_vendas_detal.Next;

  v_total1.Caption := FloatToStrF(soma1,ffCurrency , 15,2);

end;
    end; end;
end;

o que está errado? =//

 

*** não sei se ajuda... + a tela minha está assim:

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, me parece que voce ta fechando o DataSet ou a tabela antes de fazer a inserção. O erro é bem claro e normalmente é sobre isso, tente colocar um comando para abrir a tabela entes de executar a inserção. Falow!

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao... na verdade esse erro começo a aparecer depois que eu colokei essa parte:

 

begin
dm.q_vendas_detal.First;
with dm.q_vendas_detal do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_vendas_detalhes where id_ligacao like'''+ dbe_codigo.Text + '%''');
  Open;

  while not dm.q_vendas_detal.Eof do

begin
  soma1 := soma1 + dm.q_vendas_detal.Fieldbyname('valor_final').Value;
  dm.q_vendas_detal.Next;

  v_total1.Caption := FloatToStrF(soma1,ffCurrency , 15,2);

end;
    end;

testei as 2 partes sozinhas... elas funcionam... mais dai dps que montei elas junto ai da esse pau..

 

0o'''

Compartilhar este post


Link para o post
Compartilhar em outros sites

retire essa linha:

 

dm.q_vendas_detal.First;

 

pois ela não tem utilidade, afinal, após essa linha, q_vendas_detal será novamente

fechada e aberta com uma nova consulta ...

 

abraços !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.