Olá pessoal, estou com 20% do projeto pronto, quer dizer então no inicio e estou tomando alguns cuidados para ficar melhor o desempenho e para não ter erros, mas ultimamente não muito especifico, mas geralmente encontro em um formulário só, pelo que eu percebi!
Mas só que tem hora que vai numa beleza e depois vou acessar de novo ai dá um erro, entro de novo e ele vai ou dá erro de novo o erro está abaixo:
Em um DbGrid no Formulário AdmHelp ao dar um duplo click eu abro o formulário InnCad003 (Procedimentos do Formulário) e então quando eu vou abrir que dá o erro, as vezes sim ou as vezes não.....já debuguei e não estou conseguindo encontrar.....alguém me ajuda ?
Abaixo o codigo que verifico e abre o formulario InnCad003
procedure TFAdmHelp.DbgProcDblClick(Sender: TObject);
begin
if PRI_Privilegio = 'PADRÃO' then
begin
ConsultaFormLibUsuario('INNCAD003');
if Dtm.QryUsuarios.RecordCount = 0 then
begin
ShowMessage('Usuário '+PRI_UsuCodigo+' - '+PRI_UsuNome+' sem Nivel de acesso ao Formulário INNCAD003 - Pesquisa de Procedimentos !');
exit;
end;
end;
with TFInnCad003.Create(Application) do
begin
try
ProCodigo := TblProProCodigo.AsString;
PrfFormulario := Formulario;
LeRegistro;
SpbEdi.Enabled := true;
spbpes.Visible := false;
SpbCan.Visible := false;
SpbEdiClick(Self);
ShowModal;
Atualiza;
finally;
FreeAndNil(FInnCad003);
end;
end;
end;
e Quando eu abro o InnCad003 antes de mais nada no OnActive eu verifico esse procedimento abaixo:
procedure TFInnCad003.LeRegistro;
begin
TblPro.Close;
TblPro.Active := true;
with Dtm.QryProcedimentos do
begin
close;
sql.Clear;
sql.Add('Select * From Adm_Procedimentos P, Adm_Proced_Formularios F where P.ProCodigo = F.ProCodigo and F.PrfFormulario =:For and P.ProCodigo =:ProCod');
ParamByName('For').AsString := PrfFormulario;
ParamByName('ProCod').AsString := ProCodigo;
open;
end;
ProCodigo := Dtm.QryProcedimentos.FieldByName('ProCodigo').AsString;
TxtPro.Text := Dtm.QryProcedimentos.FieldByName('PrfProcedimento').AsString;
TxtFor.Text := Dtm.QryProcedimentos.FieldByName('PrfFormulario').AsString;
TxtMod.Text := Dtm.QryProcedimentos.FieldByName('ProModulo').AsString;
Mem.Text := Dtm.QryProcedimentos.FieldByName('ProDescricao').AsString;
TxtVal.Text := Dtm.QryProcedimentos.FieldByName('ProValor').AsString;
if Dtm.QryProcedimentos.FieldByName('ProObrigatorio').AsString = 'S' then
begin
RdbSim.Checked := true;
end
else
begin
RdbNao.Checked := true;
end;
if PRI_EmpTeste = 'S' then
begin
with Dtm.QryEmpresa do
begin
close;
sql.Clear;
sql.Add('Select * From Adm_Empresas');
open;
end;
end
else
begin
with Dtm.QryEmpresa do
begin
close;
sql.Clear;
sql.Add('Select * From Adm_Empresas where EmpTeste =:Emp');
ParamByName('Emp').AsString := 'N';
open;
end;
end;
while not Dtm.QryEmpresa.Eof do
begin
with Dtm.QryProcedimentos do
begin
close;
sql.Clear;
sql.Add('Select * From Adm_Proced_Empresa where EmpCodigo =:Emp and ProCodigo =:Pro and PrfFormulario =:For');
ParamByName('Emp').AsString := Dtm.QryEmpresa.FieldByName('EmpCodigo').AsString;
ParamByName('Pro').AsString := ProCodigo;
ParamByName('For').AsString := TxtFor.Text;
open;
end;
with TblPro do
begin
Insert;
TblProControle.AsString := Dtm.QryEmpresa.FieldByName('EmpControle').AsString;
TblProEpdCodigo.AsString := Dtm.QryProcedimentos.FieldByName('EpdCodigo').AsString;
TblProEmpresa.AsString := Dtm.QryEmpresa.FieldByName('EmpCodigo').AsString;
TblProValor.AsString := Dtm.QryProcedimentos.FieldByName('EpdValor').AsString;
TblProUsuario.AsString := Dtm.QryProcedimentos.FieldByName('EpdUsuario').AsString;
post;
end;
Dtm.QryEmpresa.Next;
end;
TblPro.SortOnFields('Controle', true, false);
Dtm.QryProcedimentos.Close;
TblPro.First;
DbgPro.SelectedIndex := 2;
end;
Pergunta
robinhocne
Olá pessoal, estou com 20% do projeto pronto, quer dizer então no inicio e estou tomando alguns cuidados para ficar melhor o desempenho e para não ter erros, mas ultimamente não muito especifico, mas geralmente encontro em um formulário só, pelo que eu percebi!
Mas só que tem hora que vai numa beleza e depois vou acessar de novo ai dá um erro, entro de novo e ele vai ou dá erro de novo o erro está abaixo:
Em um DbGrid no Formulário AdmHelp ao dar um duplo click eu abro o formulário InnCad003 (Procedimentos do Formulário) e então quando eu vou abrir que dá o erro, as vezes sim ou as vezes não.....já debuguei e não estou conseguindo encontrar.....alguém me ajuda ?
Abaixo o codigo que verifico e abre o formulario InnCad003
e Quando eu abro o InnCad003 antes de mais nada no OnActive eu verifico esse procedimento abaixo: Editado por robinhocneLink para o comentário
Compartilhar em outros sites
4 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.