PEsquisa!!!!!!!!!!!!!VERIFICA!!!!!!!!!!!!NAO RETIRA!!!!!!!!!
Olá Amigos, estou usando o seguinte código ao excluir um convenio que é o seguinte:
Ta baela clienetes tenho o campo CodConvenio para que cada cliente cadastrado eu seleciono o comvenio que ele pertence...porém eu só posso excluir um convenio se nenhum cliente deste convênio esta em débito (campo DEVE <>0) vejam a baixo:
procedure TfrmConvenios.btexcluirClick(Sender: TObject);
begin
dmprincipal.tblClientes.DisableControls;
if gmsgpergunta(´´,´Deseja excluir o convênio ´+ dmprincipal.tblConvenioDescricao.Value,False)= mryes then
while not dmprincipal.tblClientes.Eof do
begin
if(dmprincipal.tblClientes.Locate(´CODCON´,DMPRINCIPAL.tblConvenioCODCON.Value,[]))AND
(DMPRINCIPAL.tblClientesDEVE.Value <> 0)then
GMSGINFORMA(´´,´Ha Débitos para este convênio!´+#13+ ´Não pode ser excluido!´,False);
dmprincipal.tblClientes.Next end else
dmprincipal.tblClientes.Delete;
dmprincipal.tblClientes.EnableControls;
end;
Por favor ajudem...o código acima trava o sistema da pau em tudo e nem funciona!!
Ta baela clienetes tenho o campo CodConvenio para que cada cliente cadastrado eu seleciono o comvenio que ele pertence...porém eu só posso excluir um convenio se nenhum cliente deste convênio esta em débito (campo DEVE <>0) vejam a baixo:
procedure TfrmConvenios.btexcluirClick(Sender: TObject);
begin
dmprincipal.tblClientes.DisableControls;
if gmsgpergunta(´´,´Deseja excluir o convênio ´+ dmprincipal.tblConvenioDescricao.Value,False)= mryes then
while not dmprincipal.tblClientes.Eof do
begin
if(dmprincipal.tblClientes.Locate(´CODCON´,DMPRINCIPAL.tblConvenioCODCON.Value,[]))AND
(DMPRINCIPAL.tblClientesDEVE.Value <> 0)then
GMSGINFORMA(´´,´Ha Débitos para este convênio!´+#13+ ´Não pode ser excluido!´,False);
dmprincipal.tblClientes.Next end else
dmprincipal.tblClientes.Delete;
dmprincipal.tblClientes.EnableControls;
end;
Por favor ajudem...o código acima trava o sistema da pau em tudo e nem funciona!!
Anonymous
Curtidas 0
Respostas
Anonymous
18/02/2003
Caso vc estivesse trabalhando com query, seria mais fácil e rápido fazer esta exclusão.
A query ficaria assim:
with query_consulta do
begin
close;
sql.text := ´Select cod_convenio from convenio ´ +
´ where nom_convenio = ´´ + edt_convenio.text + ´´´ +
´ and cod_convenio in (Select c.cod_convenio
´ from cliente_deve cd, cliente c´ +
´ where c.cod_cliente = cd.cod_cliente´ +
´ and cd.val_debito = 0´);
Open;
//Esta query irá verificar se existe algum débito para o convênio digitado no edt_convenio
if recordcount = 1 then
begin
with query_deleta do
begin
close;
sql.text := ´delete from convênio ´ +
´ where cod_convenio = ´ +query_consulta.fields[0].asstring;
execsql;
end;
end
else
begin
Showmessage(´O convênio informado possui débito. Não pode ser excluído!´);
end;
end;
Espero ter ajudado.
Até mais
Ruy Salles
A query ficaria assim:
with query_consulta do
begin
close;
sql.text := ´Select cod_convenio from convenio ´ +
´ where nom_convenio = ´´ + edt_convenio.text + ´´´ +
´ and cod_convenio in (Select c.cod_convenio
´ from cliente_deve cd, cliente c´ +
´ where c.cod_cliente = cd.cod_cliente´ +
´ and cd.val_debito = 0´);
Open;
//Esta query irá verificar se existe algum débito para o convênio digitado no edt_convenio
if recordcount = 1 then
begin
with query_deleta do
begin
close;
sql.text := ´delete from convênio ´ +
´ where cod_convenio = ´ +query_consulta.fields[0].asstring;
execsql;
end;
end
else
begin
Showmessage(´O convênio informado possui débito. Não pode ser excluído!´);
end;
end;
Espero ter ajudado.
Até mais
Ruy Salles
GOSTEI 0