Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 24-09-2013 em Posts

  1. Boa tarde... O pessoal de Elgin me passou as DLL´s atualizadas e resolveu o problema... Agradeço a todos a ajuda... Segue link que me disponibilizaram para download das dll´s: https://www.dropbox.com/s/k4q58sz2whl8w7p/dlls.rar Daniel
    3 pontos
  2. Senhores, qual tag devo preencher para a Data do Serviço ser impressa no DANFES
    1 ponto
  3. Ola, Estou carregando os XML das notas para o componente com o loadfromstream(arquivo) para 5 notas, por exemplo. Faço isso para cinco notas e ao imprimir o sistema imprime corretamente, mas ao executar o ACBrNFSe1.NotasFiscais.ImprimirPDF o sistema apresenta 5 vezes o preview com a geracao de PD, ou seja, se eu imprimir 5 notas ele passa 5 vezes contando a nota de 1 ate 5 , e repete isto 5 vezes. Fiz teste também com for I := 0 to ACBrNFSe1.NotasFiscais.Count - 1 do ACBrNFSe1.NotasFiscais.items.ImprimirPDF; E para cada item imprime o PDF 5 vezes. Alguem já testou impressão com FastReport de varias NFSE ? Obrigado Marcio
    1 ponto
  4. olá edvaniojancy, Subi suas alterações para o SVN na Revisão 5913. Pelo que vi está tudo certo. Favor testar e reportar qualquer problema. Obrigado. Mas vou lhe explicar qual é o problema, e talvez você mesmo possa me ajudar nas próximas correções. O que acontece é que o método LFill é sobrecarregado (overloaded) para vários tipos de parâmetros. O compilador então fica confuso quando encontra um parâmetro inteiro e acaba chamando o método para data. Para corrigir basta que nós acabemos com a ambiguidade no método. No caso do LFill isso é facilmente corrigido passando o segundo parâmetro para o método. Como fazer isso no caso dos registros do SEF2? Veja como exemplo o caso acima onde corrigi o registro E080. Primeiro você precisa localizar o método que escreve o registro que é geralmente chamado WriteRegistroXXXX. No nosso caso o método é o WriteRegistroE080, que se encontra na unit ACBrSEF2_BlocoE_1.pas linhas a partir da 1052 na revisão atual. Veja a parte importante dele abaixo: procedure TBloco_E.WriteRegistroE080(RegE001: TRegistroSEFE001); var intFor : Integer; RegE080: TRegistroSEFE080; begin for intFor := 0 to RegE001.RegistroE080.Count - 1 do begin RegE080 := TRegistroSEFE080(RegE001.RegistroE080.Items[intFor]); with RegE080 do begin Add( LFill('E080') + LFill(IND_TOT) + LFill(COD_MOD) + LFill(NUM_MR) + LFill(DT_DOC) + LFill(VL_BRT,2) + .... Segundo localize a definição deste registro no manual do SEF2 e veja o tamanho do campo analisado. No nosso caso, as definições deste registro se encontram no arquivo SEF II - LFPD 06 - SEF_LA-ICMS.xlsx conforme imagem abaixo e o tamanho do IND_TOT é 1 e o do NUM_MR não está definido. Terceiro, de posse dessas informações basta alterar o método WriteRegistroXXXX adicionando à chamada do LFill o parâmetro que estava faltando. Veja abaixo: procedure TBloco_E.WriteRegistroE080(RegE001: TRegistroSEFE001); var intFor : Integer; RegE080: TRegistroSEFE080; begin for intFor := 0 to RegE001.RegistroE080.Count - 1 do begin RegE080 := TRegistroSEFE080(RegE001.RegistroE080.Items[intFor]); with RegE080 do begin Add( LFill('E080') + LFill(IND_TOT, 1) + LFill(COD_MOD) + LFill(NUM_MR, Length(inttostr(NUM_MR)) + LFill(DT_DOC) + LFill(VL_BRT,2) + Note que no caso do NUM_MR eu acabei usando um artifício (Length(inttostr(NUM_MR)) para descobrir em run-time o tamanho do campo visto que o método LFill não aceitaria uma indefinição do tamanho. Se você, ou qualquer outra pessoa, encontrar mais desses erros, pode corrigir conforme explicado e anexar o arquivo alterado aqui. Isso vai dar mais agilidade para o processo.
    1 ponto
  5. Boa tarde lvr, Obrigado pela colaboração. Já esta disponivel.
    1 ponto
  6. Boa tarde a todos, Como responsável pelas alterações no componente ACBrCTe, gostaria de colocar a minha posição sobre esse assunto. Quando comecei a usar os componentes ACBr foi um pouco antes do lançamento da versão 2.00 da NF-e. Na época os responsáveis pelo componente resolveram em criar um novo componente o ACBrNFe2 que era destinado a versão 2.00 em contra partida ao ACBrNFe que era destinado a versão 1.11 se não me falha a memória. Mas tinhamos um problema, internamente o componente tinha o mesmo nome ou seja ACBrNFe1, portanto não era possivel ter os dois instalados no mesmo Delphi. Isso sem falar que muitos compilavam o pacote PCN2 e depois queriam compilar o ACBrNFe e vice-versa. Instalava o ACBrNFe e queriam emitir a NFe na versão 2.0 Esses são os problemas que observei lendo o fórum na época. Logo o que é mais fácil, alterar o ACBr.inc e compilar a sua aplicação com a opção Build ou ter que remover um componente para instalar outro? Sei que poderiamos criar um segundo componente e alterar o nome interno dele, por exemplo ACBrCTev2 desta forma poderiamos ter os dois componentes instalados no mesmo Delphi. Mas resolvi repetir o procedimento adotado quando a versão do CT-e mudou de 1.03 para 1.04, me digam foi muito traumatico essa mudança? Os clientes reclamaram muito, por ter que usar um programa a parte, para poder ler o XML e imprimir o DACTE da versão anterior? Já postei em outros tópicos, como ficaria a rotina na hora de alimentar o componente em função da nova versão. Eu lanço mão da diretiva de compilação. Portanto a minha aplicação hoje é capaz de gerar XML do CT-e nas versões 1.04 ou 2.00 bastando alterar o ACBr.inc e compilar com o Build. Não preciso trocar uma virgula se quer na minha aplicação. Quem sou eu em dizer o que é certo o que é errado, apenas adotei uma solução, me desculpa se ela deixa a desejar em alguns aspectos.
    1 ponto
  7. Se nada disso deu certo, e se vc é religiso, o negócio é começar a rezar, pq, td o que foi tentado não funcionou, resta saber se isso ocorre em outras máquinas? Se é que vc tentou em outras? []s,
    1 ponto
  8. Você precisa primeiro instalar o certificado .pfx no computador. Depois de instalado confira se realmente instalou: Painel de Controle, Opções de internet, Aba conteúdo, botão certificados. Se o certificado aparecer nesta lista, também deve aparecer na lista de certificados do exemplo da NFSe.
    1 ponto
  9. Boa tarde, No FastReport não tem a tarja da NFSe Cancelada. Fiz a alteração nos fontes que estão anexo nos arquivos: ACBrNFSeDANFSeFRDM.dfm, ACBrNFSeDANFSeFRDM.pas e DANFSE.fr3. Faça um backup dos seus fontes da pasta ACBrNFSe e copie estes para ela. No seu fonte, após carregar o xml com "LoadFromFile" você deve alimentar a variável NFSeCancelada: ACBrNFSe1.NotasFiscais.LoadFromFile('numero-nfse.xml'); if ACBrNFSe1.NotasFiscais.Items[i].NFSe.NfseCancelamento.DataHora <> 0 then DANFSe.NFSeCancelada := True;
    1 ponto
  10. Daruma finalizada, testada e rodando 100%, basta atualizar os fontes e recompilar, testei aqui e está gerando perfeitamente.
    1 ponto
×
×
  • 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...
The popup will be closed in 10 segundos...