Ir para conteúdo
  • Cadastre-se

dev botao

acbrtefd temos a opção de interceptar uma requisição e slavar no arquivo?


Ver Solução Respondido por Rafael Dias,
  • Este tópico foi criado há 2835 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

acbrtefd temos a opção de interceptar uma requisição e slavar no arquivo?

digo no acbr delphi tem a opção de gravar.. intercepta ele antes de finaliza a requisição e grava um dado registro qualquer por ex: 500-000 = 1

ai queria saber se no framework tem algo assim? 

Link para o comentário
Compartilhar em outros sites

Function TEF_Req_GravaInformacao(const tefHandle : PTEFHandle; const reqHandle : TACBrTEFDReq; Identificacao, Sequencia : Integer; Informacao : pChar): Integer ; {$IFDEF STDCALL} stdcall; {$ENDIF} {$IFDEF CDECL} cdecl; {$ENDIF} export;
begin
   if (tefHandle = nil) then
    begin
       Result := -2;
       Exit;
    end;

   try
      reqHandle.GravaInformacao(Identificacao, Sequencia, Informacao);
      Result := 0;
   except
      on exception : Exception do
      begin
         tefHandle^.UltimoErro := exception.Message;
         Result := -1;
      end
   end;

end;

fiz essa mudança no arquivo ACBrTEFDll.pas

 

 

public void GravaInformacao(int Identificacao, int Sequencia, String Informacao)
	    {
            int ret = ACBrTEFInterop.TEF_Req_GravaInformacao(Handle, ComposedHandle, Identificacao, Sequencia, Informacao);

            CheckResult(ret);
        }

e fiz essa mudança no arquivo Req.cs

 

[DllImport(ACBr, CallingConvention = CallingConvention.Cdecl)]
        public static extern int TEF_Req_GravaInformacao(IntPtr tefHandle, IntPtr reqHandle, int Identificacao, int Sequencia, String Informacao);

e fiz essa muandaça no arquivo ACBrTEFInterop.cs

Arquivos.. anexados

O negocio é , quando compilo para o c# e executo, diz que o método de iterop não existe, ai queria ajuda em saber oque estou fazendo de errado, para estar aprendendo é poder contribuir para o projeto.

obs: gerado a DLL do lazarus antes e depois coloco ela na devida pasta e mando compilar o projeto acbrframework.net 

Obrigado.

 

ACBrTEFDll.pas

ACBrTEFInterop.cs

Req.cs

Editado por RobertoRP
modificação
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Tem aqui a não ser que é outro lugar e estou enganado

{Req}
TEF_Req_GetHeader, TEF_Req_SetHeader,
TEF_Req_GetDocumentoVinculado,TEF_Req_SetDocumentoVinculado,
TEF_Req_GetCMC7, TEF_Req_SetCMC7,
TEF_Req_GetDocumentoPessoa, TEF_Req_SetDocumentoPessoa,
TEF_Req_GetRede, TEF_Req_SetRede,
TEF_Req_GetNSU, TEF_Req_SetNSU,
TEF_Req_GetFinalizacao, TEF_Req_SetFinalizacao,
TEF_Req_GetID, TEF_Req_SetID,
TEF_Req_GetMoeda, TEF_Req_SetMoeda,
TEF_Req_GetTipoPessoa, TEF_Req_SetTipoPessoa,
TEF_Req_GetValorTotal, TEF_Req_SetValorTotal,
TEF_Req_GetDataCheque, TEF_Req_SetDataCheque,
TEF_Req_GetDataHoraTransacaoComprovante, TEF_Req_SetDataHoraTransacaoComprovante,
TEF_Req_GravaInformacao, // aqui 

Baixando o arquivo e abrindo no notepad++ a linha é 10713

Editado por RobertoRP
adicionar linha no notepad++
Link para o comentário
Compartilhar em outros sites

Grande Rafael, muito obrigado pela ajuda! 

Deu certo aqui =) 

Assim não sei se é muito pedir, mas podia incluir nos fontes? enfim muito obrigado.

 

observação que esqueci de comentar.. os fontes estão uma versão anterior a mais atual, porque a mais atual não quer compilar ela trava na hora de dar new qualquercomponenteacbrframework();

Editado por RobertoRP
versão anterior
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2835 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.