Fórum Ajuda com procedure #321027
09/05/2006
0
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
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
Curtir tópico
+ 0
Responder
Posts
14/05/2006
Jrcosmoluis
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
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)