Ir para conteúdo
  • Cadastre-se

Anderson William

Membros
  • Total de ítens

    66
  • Registro em

  • Última visita

Tudo que Anderson William postou

  1. certo. Obrigado pela atenção. vlw
  2. Estou com um problema quando retiro o papel da impressora daruma, sendo que a mesma fica com led de erro piscando e com um tic tac e apartir dai o acbr nao consegue mais nem conectar com a impressora para poder entrar no meu try except o qual mostra a mensagem de que nao ha mais papel na impressora.
  3. foi alterado de {$IFDEF LINUX} para {$IFNDEF MSWINDOWS} realmente está correto? Uma sugestão, foi adicionado esse código recentemente da cLIB_VersaoMinima = '6.1.1.6'; Porém na pasta das dll's do acbr está a versão 6.1.1.1. Vocês poderiam atualizar também a pasta dll? Porque peguei a dll da pasta do acbr e começou a dar erro na hora de gerar o arq mf. Obrigado.
  4. Eu estava lendo aqui e achei: houveram algumas alterações, está assim agora: 3. A alteração de registros no banco de dados utilizado para gerar o arquivo eletrônico previsto no item 17 do requisito VII não poderá invalidar todo o arquivo, mas somente os registros que tiveram seus bytes alterados. 4. A alteração de registro no banco de dados para geração do arquivo eletrônico assinado digitalmente, previsto no item 17 do Requisito VII, com leiaute estabelecido no Anexo IV, deverá ser evidenciada, apenas nos registros alterados, mediante a substituição de brancos pelo caractere “?” no campo: a) “Modelo do ECF” no caso de alteração em registros tipo E3, D2, M2, L2, G2, H2, R01, R02, R03, R04, R05, R06 ou R07. “Descrição” no caso de alteração em registros tipo D3. c) “Unidade” no caso de alteração em registros tipo E2 ou P2. d) “Tipo de documento” no caso de alteração em registros tipo T2. e) “Combustível” no caso de alteração em registros tipo C2. f) “Descrição da Linha” no caso de alteração em registros tipo F2. g) “Número do Usuário”, no caso de alteração em registros tipo F3. h) “Código do Tipo de Serviço”, no caso de alteração em registros tipo F4. i) “ECF Utilizado”, no caso de alteração em registros tipo T2. j) “Motivo da Substituição”, no caso de alteração em registros tipo B2. k) “Meio de Pagamento”, no caso de alteração em registros tipo A2. 5. A exclusão/inclusão de dados no banco de dados utilizado para gerar o arquivo eletrônico previsto no item 17 do Requisito VII, deverá ser evidenciada mediante a substituição de brancos pelo caractere “?” no campo “Razão Social” do registro tipo PAF constante no Anexo Então terá ainda.
  5. Desculpa, me expressei errado. Na forma antiga de gerar os arquivos, ao alterar algo no banco de dados, no arquivo esses registros que eram alterados deveriam aparecer com ? no campo para identificar quais registros foram alterados no banco de dados. Terá isso também no arquivo Registros do paf-ecf?
  6. Anderson William

    Registros Do Paf-Ecf

    Tenho uma dúvidas para tirar: O arquivo Registros do paf-ecf irá conter vários arquivos dentro dele, a pergunta é, em relação a criptografia desse "arquivão", continuará sendo igual como era quando os arquivos eram separados? Alguém já viu algo a respeito da criptografia no arquivo Registros do paf-ecf? Grato.
  7. ok, desculpa a confusão, é que não ví sentido em gerar um arquivo txt apenas com o EAD. Mas lei é lei. Valeu.
  8. A função ArquivoMFD_DLL só gera o arquivo binário? Eu estava lendo e na lei pede o arquivo em formato txt (com o mesmo nome) também, não é isso? Tem alguma função que converte de binário para txt? Grato.
  9. Só mais uma dúvida, não é mais necessário que o Arquivo MFD, tenham as opções por data ou COO, não é isso? Ou seja, sempre vai gerar de todo o movimento. Certo?
  10. Passei um tempo em outros projetos, e voltei agora para o paf, e ví que o método ArquivoMFD_DLL com esse parâmetro(apenas para o path) não estava aparecendo, fui ver o por que, e ví que o projeto ainda estava hospedado na SourceForge, deu certo, coloquei o caminho svn://svn.code.sf.net/p/acbr/code/trunk e atualizou. Valeu Régys.
  11. Desculpem a pergunta idiota, mas arquivo mf não tem nada a ver com o arquivo mfd? Existe outra função para pegar arquivo mf (no formato binário e txt) especificado item 4 do requisito REQUISITO VII ? E essa função é a ArquivoMFD_DLL? Porque se for ela, está pedido data inicial, data final, nome do arquivo, Documento e Finalidade, é essa função mesmo? Se for, como eu a preencho?
  12. Eu já havia pesquisado, mas nenhum dos posts me ajudou. As configurações de velocidade e a dll estavam corretas, entrei em contato com a Daruma e após um dia sem achar o que era passaram o problema para algo relacionado ao USB, ou a porta ou o cabo, trocamos de porta e de cabo e o problema persistiu. Para solucionar usamos um adaptador de COM para USB, e agora tudo esta funcionando perfeitamente. De qualquer forma obrigado.
  13. Estou utilizando essa função: procedure PafMF_LMFC_Cotepe1704(const DataInicial, DataFinal: TDateTime; const PathArquivo: String); overload; Quando eu a executo aparece esse erro: Erro ao executar xrGerarRelatorio_ECF_Daruma. Cod.: -1 Erro do Método. Estou utilizando uma daruma usb, com o windows 32 bits. Testei no exemplo da própria ACBr e dá esse erro também: Alguém já passou por isso? podem me ajudar?
  14. Ao ativar o ECF, aparece o erro: Erro ao carregar a função:Bematech_FI_EnviaComando de: Bemafi32.dll estou utilizando um ecf bematech, usb, sistema operacional windows 32 bits. ví nesse post que ainda estão sendo implementadas as funções para a bematech usb. Queria saber se já tem algum avanço em relação a implementação das funções para a bematech usb, queria saber também se alguém já passou por esse problema, e como resolvê-lo?
  15. o path é onde o arquivo é gerado inicialmente, ao executar a função da bematech, o que o código faz por baixo dos panos é transferir do caminho do path(no meu caso C:\) para o diretório que foi passado no terceiro parâmetro da função ACBrECF.PafMF_LMFC_Cotepe1704;
  16. Segue em anexo o arquivo ACBrECFBematech.pas alterado, fiz uma alteração também no timeout da redução z na bematech, às vezes 40 segundos não é o bastante para imprimir uma redução z. ACBrECFBematech.pas ACBrECFBematech.pas
  17. ok, obrigado amigo, já está tudo esclarecido.
  18. Amigo, não aparece essa opção para anexar arquivos. Já tentei em três navegadores. Será que é alguma questão de permissões?
  19. Quais as implicações para o sistema, caso eu deixe o ACBrECF1.Device.ProcessMessages := False ; Pode dar algum erro? Posso deixar isso por padrão no componente do AcbrECF ?
  20. Desculpa a pergunta besta, mas sou relativamente novo no fórum. Como eu faço para anexar aqui o arquivo? Grato.
  21. Desculpa a demora para responder... O problema não está na dll, pois o arquivo está sendo gerado na pasta informada no BEMAFI32.INI, mas não estava transferindo para o diretório que é passado no terceiro parâmetro da função ACBrECF.PafMF_LMFC_Cotepe1704. Porém eu alterei apenas na função da bematech, não sei dizer se nos outros ECF's estão gerando corretamento, até porque cada um tem uma forma de implementar a função. Segue abaixo as funções alteradas: procedure TACBrECFBematech.ArquivoMFD_DLL(DataInicial, DataFinal: TDateTime; NomeArquivo: AnsiString; Documentos: TACBrECFTipoDocumentoSet; Finalidade: TACBrECFFinalizaArqMFD); Var Arquivos : TStringList ; Resp, Tipo : Integer ; DiaIni, DiaFim, Prop, Prefixo, FileMask, FilePath : AnsiString ; OldAtivo : Boolean ; {$IFDEF LINUX} Cmd, ArqTmp : String ; {$ENDIF} S: string; begin Prop := IntToStr( StrToIntDef( UsuarioAtual, 1) ) ; FilePath := ExtractFilePath( NomeArquivo ); Tipo := 2; Prefixo := 'TDM'; FinalidadeToTipoPrefixo( Finalidade, Tipo, Prefixo ); {$IFDEF LINUX} ArqTmp := FilePath +'ACBr.mfd'; DeleteFile( ArqTmp ) ; DiaIni := FormatDateTime('ddmmyy',DataInicial) ; DiaFim := FormatDateTime('ddmmyy',DataFinal) ; OldAtivo := Ativo ; try Ativo := False; Cmd := fpDevice.Porta + ' ' + ArqTmp+' 3 ' + DiaIni + ' ' + DiaFim + ' ' + Prop; RunCommand('./linuxmfd',Cmd,True) ; if not FileExists( ArqTmp ) then raise EACBrECFErro.Create( ACBrStr('Erro na execução do utilitário "linuxmfd" '+ 'Arquivo: '+ArqTmp+' não foi criado' ) ) ; SysUtils.DeleteFile( NomeArquivo ) ; Cmd := NomeArquivo + ' ' + ArqTmp + ' 3 ' + DiaIni + ' ' + DiaFim + ' ' + Prop ; RunCommand('./bemamfd2',Cmd,True) ; if not FileExists( NomeArquivo ) then raise EACBrECFErro.Create( ACBrStr( 'Erro na execução do utilitário "bemamfd2".'+sLineBreak+ 'Arquivo: "'+NomeArquivo + '" não gerado' )) ; finally DeleteFile( ArqTmp ) ; Ativo := OldAtivo ; end; {$ELSE} LoadDLLFunctions; DiaIni := FormatDateTime('dd"/"mm"/"yyyy', DataInicial) ; DiaFim := FormatDateTime('dd"/"mm"/"yyyy', DataFinal) ; SetLength(S, MAX_PATH); if GetWindowsDirectory(PChar(S), MAX_PATH) > 0 then S := string(S)[1] + ':\'; FileMask := S + Prefixo + Trim(NumSerie) + '_' + FormatDateTime('yyyymmdd',Now ) + '_*.TXT'; Arquivos := TStringList.Create; OldAtivo := Ativo ; try DeleteFile( NomeArquivo ); DeleteFiles( FileMask ); AbrePortaSerialDLL( FilePath ) ; // erro aqui... Resp := xBematech_FI_ArquivoMFD( '', DiaIni, DiaFim, 'D', '0' + Prop, Tipo, cChavePublica, cChavePrivada, 1 ) ; if (Resp <> 1) then raise EACBrECFErro.Create( ACBrStr( 'Erro ao executar xBematech_FI_ArquivoMFD.'+sLineBreak+ AnalisarRetornoDll(Resp) )) ; FindFiles( FileMask, Arquivos ); if Arquivos.Count < 1 then raise EACBrECFErro.Create( ACBrStr( 'Erro na execução de xBematech_FI_ArquivoMFD.'+sLineBreak+ 'Arquivo: "'+NomeArquivo + '" não gerado' )) ; RenameFile( Arquivos[0], NomeArquivo ); finally Arquivos.Free; FechaPortaSerialDLL( OldAtivo ); end; {$ENDIF} end; -------------------------------------------------------------------------------------------------------------------- procedure TACBrECFBematech.ArquivoMFD_DLL( ContInicial, ContFinal : Integer; NomeArquivo : AnsiString; Documentos : TACBrECFTipoDocumentoSet; Finalidade: TACBrECFFinalizaArqMFD; TipoContador: TACBrECFTipoContador); Var Arquivos : TStringList ; Resp, Tipo : Integer ; Prop, COOIni, COOFim, Prefixo, FileMask, FilePath : AnsiString ; OldAtivo : Boolean ; S: string; {$IFDEF LINUX} Cmd, ArqTmp : String ; {$ENDIF} begin FilePath := ExtractFilePath( NomeArquivo ); Tipo := 2; Prefixo := 'TDM'; if TipoContador = tpcCRZ then CRZToCOO(ContInicial, ContFinal, ContInicial, ContFinal) ; FinalidadeToTipoPrefixo( Finalidade, Tipo, Prefixo ); Prop := IntToStr( StrToIntDef( UsuarioAtual, 1) ) ; COOIni := IntToStrZero( ContInicial, 6 ) ; COOFim := IntToStrZero( ContFinal, 6 ) ; {$IFDEF LINUX} ArqTmp := FilePath + 'ACBr.mfd'; DeleteFile( ArqTmp ) ; OldAtivo := Ativo ; try Ativo := False; Cmd := fpDevice.Porta + ' ' + ArqTmp+' 3 ' + COOIni + ' ' + COOFim + ' ' + Prop; RunCommand('./linuxmfd',Cmd,True) ; if not FileExists( ArqTmp ) then raise EACBrECFErro.Create( ACBrStr('Erro na execução do utilitário "linuxmfd" '+ 'Arquivo: '+ArqTmp+' não foi criado' ) ) ; SysUtils.DeleteFile( NomeArquivo ) ; Cmd := NomeArquivo + ' ' + ArqTmp + ' 3 ' + COOIni + ' ' + COOFim + ' ' + Prop ; RunCommand('./bemamfd2',Cmd,True) ; if not FileExists( NomeArquivo ) then raise EACBrECFErro.Create( ACBrStr( 'Erro na execução do utilitário "bemamfd2".'+sLineBreak+ 'Arquivo: "'+NomeArquivo + '" não gerado' )) ; finally DeleteFile( ArqTmp ) ; Ativo := OldAtivo ; end; {$ELSE} LoadDLLFunctions; SetLength(S, MAX_PATH); if GetWindowsDirectory(PChar(S), MAX_PATH) > 0 then S := string(S)[1] + ':\'; FileMask := S + Prefixo + Trim(NumSerie) + '_' + FormatDateTime('yyyymmdd',Now ) + '_*.TXT'; Arquivos := TStringList.Create; OldAtivo := Ativo ; try DeleteFile( NomeArquivo ); DeleteFiles( FileMask ); AbrePortaSerialDLL( FilePath ) ; Resp := xBematech_FI_ArquivoMFD( '', COOIni, COOFim, 'C', Prop, Tipo, cChavePublica, cChavePrivada, 1 ) ; if (Resp <> 1) then raise EACBrECFErro.Create( ACBrStr( 'Erro ao executar xBematech_FI_ArquivoMFD.'+sLineBreak+ AnalisarRetornoDll(Resp) )) ; FindFiles( FileMask, Arquivos ); if Arquivos.Count < 1 then raise EACBrECFErro.Create( ACBrStr( 'Erro na execução de xBematech_FI_ArquivoMFD.'+sLineBreak+ 'Arquivo: "'+NomeArquivo + '" não gerado' )) ; RenameFile( Arquivos[0], NomeArquivo ); finally Arquivos.Free; //DeleteFile( ArqTmp ) ; FechaPortaSerialDLL( OldAtivo ); end; {$ENDIF} end;
  22. É isso mesmo, mas não dá certo se fizer isso: 'C:\' + FileMask, pois antes disso o FileMask está recebendo assim: FileMask := FilePath + Prefixo + Trim(NumSerie) + '_' + FormatDateTime('yyyymmdd',Now ) + '_*.TXT'; ai no caso desse projeto vai ficar assim: C:\D:\Workdir\PAFECF\PAFECF\Arquivos\LMFC_ATO_COTEPE_1704_31052013-111511.txt e outra coisa, o arquivo mfd é salvo de acordo com o PATH que fica no registro do windows. Se fizer assim dá certo: Na declaração: S: string; No médoto: SetLength(S, MAX_PATH); if GetWindowsDirectory(PChar(S), MAX_PATH) > 0 then S := string(S)[1] + ':\'; // O S será preenchido de acordo com o PATH definido no registro do windows, que tem também no bemafi32.ini com o nome // Path, pode ser C:\ , D:\ ... FileMask := S + Prefixo + Trim(NumSerie) + '_' + FormatDateTime('yyyymmdd',Now ) + '_*.TXT'; aí, quando for executar a função FindFiles, dá certo! FindFiles( FileMask, Arquivos );
  23. Nas outras funções da leitura de memória fiscal completa, que no caso é essa: ACBrECF.PafMF_LMFC_Espelho está dando certo, mas na função ACBrECF.PafMF_LMFC_Cotepe1704 não dá.
×
×
  • 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.

The popup will be closed in 10 segundos...