Ajuda com procedure

Delphi

09/05/2006

Pessoal,

Tenho um formulário onde cadastro todas as movimentações de um
determinado documento e esse form está definido assim:

TABMOVIMENTAÇÃO // aqui cadastro todas as movimentações dos documentos

ID_REGISTRO
ID_DOCUMENTO
ID_ORGÃO
ID_SETOR
ID_SITUAÇÃO
DT_ENVIO
DT_RETORNO


TABDOCUMENTO // aqui cadastro todos os documentos

ID_DOCUMENTO
TIPO_DOCUMENTO
ASSUNTO_DOCUMENTO
DT_CADASTRO


Dessa forma, a proporção que documento (ID_DOCUMENTO) for mudando de
órgão (ID_ORGAO), eu registro esse movimento, porém, gostaria de fazer o
seguinte.

Na saída do foco do edit ID_DOCUMENTO da TABELA MOVIMENTAÇÃO
verifique se esse código já está cadastrado na TABELA DOCUMENTO e se
esse código já tem movimentação na TABELA MOVIMENTO, o mesmo, terá
que ter a data de retorno (DT_RETORNO) senão, não poderá ser movimentado
para outro Órgão, informando ao usuário que “ NÃO PODERÁ MOVIMENTAR
DOCUMENTO QUE NÃO ESTEJA RETORNADO”. Conseguir fazer a consulta
pra ver se o código existe desta forma:

procedure tfrmmovimentar.consultaminuta(sender: tobject);
begin
if edid_documento.text<>´´ then
begin
with qryconsulta do
begin
close;
sql.clear;
sql.add(´select tipo_doc from TABDOCUMENTO where id_documento=´+edid_documento.text);
open;
if recordcount>0 then
begin
edtipo_doc.text := fields[0].value;
end
else
begin
messagedlg(´código minuta não existe´,mtinformation,[mbok],0);
edid_documento.setfocus;
end;
end;
end;
end;

Tem como fazer? Os Amigos poderiam dar uma grande ajuda? Espero ter explicado o suficiente para um bom entendimento…mas qualquer dúvida ou
sugestão estou aqui.

Valeu,


Luis Jr


Jrcosmoluis

Jrcosmoluis

Curtidas 0

Respostas

Jrcosmoluis

Jrcosmoluis

09/05/2006

Amigos,

Seguindo uma grande dica de um colega de trabalho foi feito da seguinte maneira:

1º Adicionei mais uma query

Nome: qryConfirmacao
SQL: Select ID_REGISTRO from MOVIMENTAR where DT_RETORNO = ´´ and ID_DOCUMENTO = :codigo

2º Crie uma Função

function TFrmMovimentar.VerificarMinutaAberta(codigoMinuta: integer): boolean;
begin
qryConfirmacao.Close;
qryConfirmacao.ParamByName(´codigo´).AsInteger := codigoMinuta;
qryConfirmacao.Open;

If qryConfirmacao.Eof Then
Result := false
else
Result := True;
end;

3º Depois no botão Gravar antes de gravar

if Novo then
begin
If VerificarMinutaAberta(StrToInt(EdID_DOCUMENTO.Text)) Then
begin
Application.MessageBox(´MINUTA NÃO RECEBIDA´+#13+´IMPOSSÍVEL MOVIMENTAR´,´AVISO´,mb_iconexclamation);
Exit;
end;
....
...
end;

Funcionou legal... obrigado e valeu pela atenção de vocês

:D


GOSTEI 0
POSTAR