Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 24-09-2013 em todas as áreas

  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...