Ir para conteúdo
  • Cadastre-se

everson.turossi

Membros
  • Total de ítens

    183
  • Registro em

  • Última visita

Tudo que everson.turossi postou

  1. A opção "nativa" seria o Fast, mas não estou lembrado a partir de qual versão se tornou a ferramenta de relatório padrão no Delphi e também tem a questão das versões. Como já não a possui, instala o Fortes que não tem galho.
  2. Aqui faço da seguinte forma, deixo livre para digitação todos os campos e valido na gravação se a tag e grupo digitados permitem correção. Quanto as tags que podem ser corrigidas, ai eu tenho um menu de acesso rápido onde o usuário seleciona uma das opções a ser corrigidas e então é completado o grupo e a tag. Não vi a necessidade de criar uma rotina com todas as tags existentes pois as correções a serem feitas na maioria dos casos ficam limitadas a 4 ou 5 tags como por exemplo a CFOP.
  3. ACBrCTe.Conhecimentos.Clear; ACBrCTe.Conhecimentos.LoadFromString(VariavelStringComXML); ACBrCTe.Conhecimentos.Imprimir;
  4. Já tive a mesma necessidade para NF-e onde precisava que várias DANFEs fossem anexadas a um único PDF. Acabei utilizando a dll gsdll32.dll do GhostScript que é capaz de manipular PDFs e inclusive mesclar vários arquivos em um único arquivo. Se não conseguir de outra forma, da um toque que anexo aqui as units.
  5. O modelo da impressora está configurado corretamente? ACBrNFeDANFeESCPOS1.PosPrinter.Modelo := ppEscPosEpson;
  6. Até seria uma possibilidade, mas pra ter acesso a método/propriedade privados só é possível caso o objeto pai e filho estejam na mesma Unit (privados da cláusula private, usando strict private ai só o próprio objeto tem acesso). Neste caso o método teria que estar declarado na cláusula protected onde um método não tem acesso publico mas os objetos que herdarem deste objeto conseguem ter acesso. Porém ClassHelpers trazem uma enorme facilidade de uso, uma vez que é possível adicionar métodos a qualquer classe existente sem a necessidade de criar uma classe herdando de outra. Vou exemplificar: no componente TACBrNFe existe a property NotasFiscais do tipo TNotasFiscais no qual eu necessito a implementação de um novo método e não posso alterar a classe original (poderia ser uma classe nativa do Delphi para facilitar o entendimento). Até poderia estender este objeto e utilizar utilizando Cast ter acesso ao método, mas achei mais interessante criar um ClassHelper para isso uma vez que o próprio Delphi tem utilizado ClassHelpers nas versões mais recentes para fazer aquelas conversões de tipos (MinhaVariavelString := MinhaVariavelInteira.toString;). Vou anexar aqui meus Helpers para ter uma ideia do que estou implementando. UACBr.ProntaEntrega.Boleto.Helper.pas UACBr.ProntaEntrega.NFe.Helper.pas
  7. Utilizo ACBr para a impressão de Danfes e Boletos e tenho a necessidade de Gerar em outros formatos os quais não estão disponíveis. A algum tempo atrás até criei um post com as alterações necessárias o qual não foi aceito pois os recursos que necessito estão disponíveis apenas para Fast. Então para que seja possível exportar os relatórios em outros formatos, toda vez que atualizo os fontes tenho que alterar o código fonte do ACBr com as implementações necessárias o que é um pouco trabalhoso. Através de ClassHelpers consegui fazer a implementação para exportar Boleto e Danfe em outros formatos, porém para que isso seja possível, necessito que alguns métodos e propertys estejam públicos. No Boleto em Fast a function PreparaRelatorio está privada, já no Danfe em Fast a function que faz esse trabalho já está definida como pública. Na unit ACBrNFeNotasFiscais necessito acesso a procedure VerificarDANFE. No Danfe em Fast o dmDanfe está definido apenas como variável, sem uma propriedade para acesso público a ela, já no Boleto esse mesmo datamodule possui uma property para acesso público. Estou anexando aqui as units alteradas condizentes com o componente em questão para análise, mas vou criar um post em cada um dos fóruns, pois sei que os responsáveis por esses dois componentes são pessoas diferentes. ACBrNFeNotasFiscais.pas ACBrNFeDANFEFR.pas
  8. Utilizo ACBr para a impressão de Danfes e Boletos e tenho a necessidade de Gerar em outros formatos os quais não estão disponíveis. A algum tempo atrás até criei um post com as alterações necessárias o qual não foi aceito pois os recursos que necessito estão disponíveis apenas para Fast. Então para que seja possível exportar os relatórios em outros formatos, toda vez que atualizo os fontes tenho que alterar o código fonte do ACBr com as implementações necessárias o que é um pouco trabalhoso. Através de ClassHelpers consegui fazer a implementação para exportar Boleto e Danfe em outros formatos, porém para que isso seja possível, necessito que alguns métodos e propertys estejam públicos. No Boleto em Fast a function PreparaRelatorio está privada, já no Danfe em Fast a function que faz esse trabalho já está definida como pública. Na unit ACBrNFeNotasFiscais necessito acesso a procedure VerificarDANFE. No Danfe em Fast o dmDanfe está definido apenas como variável, sem uma propriedade para acesso público a ela, já no Boleto esse mesmo datamodule possui uma property para acesso público. Estou anexando aqui as units alteradas condizentes com o componente em questão para análise, mas vou criar um post em cada um dos fóruns, pois sei que os responsáveis por esses dois componentes são pessoas diferentes. ACBrBoletoFCFR.pas
  9. Bom, a maneira mais fácil e tranquila de fazer isso é você criar um método ai no seu servidor Datasnap no qual retorne a Danfe no formato PDF e enviar direto para a impressora. Faço referencia apenas ao PDF porque este está ok tanto para Fast quanto para Fortes. Até pode ser feito de outras maneiras, mas dai vai te consumir muito mais tempo e tempo eu sei que é algo que nenhum programador tem.
  10. Que tipo de impressora será utilizado?
  11. Seu certificado pode ter perdido a Chave de criptografia a qual é usada para fazer a assinatura. A consulta de Status e consulta de Documento funcionam porque não é necessário fazer assinatura do XML. Um caso semelhante acontecia com alguns certificados A3 que continuavam aparecendo na lista de certificados mesmo com o cartão fora da Leitora. Se possui o backup original do certificado tenta usar ele, pois se tentar exportar este ai o problema vai persistir.
  12. Antes de qualquer coisa tem que se atentar a um detalhe do manual na página 23 (ACBr\tools\DFe\NFeNFCe\Manuais\MOC versao 7.01 Anexo III Manual DANFE.pdf) 3.11. DANFE Simplificado Nas operações realizadas fora do estabelecimento o DANFE poderá ser impresso em formato simplificado, não sendo admitida a emissão em contingência utilizando EPEC ou a impressão de DANFE em formulário de segurança. Se o objetivo é venda de pronta entrega, pode ser feito sem problemas. Nas páginas 23 e 24 do manual encontrará os requisitos para impressão do Danfe Simplificado para NF-e. Não sei te dizer se o Danfe em Fortes possui implementado o modelo Simplificado, mas para Fast pode ser encontrado em ACBr\trunk2\Exemplos\ACBrDFe\ACBrNFe\Delphi\Report\Obsoletos\DANFeSimplificado.fr3
  13. Existem alguns tópicos que já foram tratados sobre esse assunto. Em resumo, a forma mais fácil seria transformar o Danfe Resumido em uma imagem e enviar essa imagem para impressão. Aqui temos implementado com Fast e mais algumas modificações no fonte original do ACBr. Havendo interesse posso anexar os fontes alterados para te dar uma luz do que pode ser feito.
  14. Uma solução é gerar uma Imagem do Danfe simplificado e imprimir esta imagem. Já existem outros tópicos sobre o assunto onde eu mesmo tive participação. Verifica se impressora em questão consegue imprimir imagens JPG ou apenas PNG.
  15. Só um detalhe, a única pessoa que precisa fazer a manifestação pra ter acesso completo ao XML é o Destinatário. Outras entidades envolvidas como Transportadoras (quando já informado na emissão) ou Contadores (e demais autorizados a baixar o xml no grupo <AutXML>) não precisam fazer manifestação, o XML já vem completo.
  16. Outro teste que pode ser feito, pegar o xml da guia que foi gerado e fazer a importação dele no Portal da GNRE.
  17. Pega o protocolo recebido e faz a consulta diretamente no Portal da GNRE. Aconteceu comigo semana passada e quando fiz dessa forma, no portal da GNRE trouxe o motivo que não retornava via Webservice.
  18. Eu cheguei a ler em algum tópico onde era aconselhado converter o conteúdo do certificado pra Base64 e guardar no banco de dados. Tenta da seguinte forma: // Armazenar cdsCertifDADOS_PFX.AsAnsiString := EncodeBase64(LerCertificado('...')); // uses synacode // Ler vACBrNFe.Configuracoes.Certificados.DadosPFX := DecodeBase64(cdsCertifDADOS_PFX.AsAnsiString);
  19. Bom dia, em relação a ISAPI + IIS, servidor standalone não poderei ajudar pois não utilizo dessa forma. Mas se você der uma pesquisada no fórum por esse erro, ou só pela palavra PFXImportCertStore verá que os vários tópicos onde esse erro é relatado e o pessoal estava usando Windows XP ou Windows 2003, ou seja, sistema operacional desatualizado. No próprio Windows 10 já tive vários problemas com os documentos fiscais por falta de atualização no Sistema Operacional e que foram resolvidas apenas instalando todas as atualizações disponíveis.
  20. Qual versão do Sistema Operacional? Está devidamente atualizado?
  21. E tá usando o que? OpenSSL, Capicon, Wincrypt?
  22. Tenta usar o certificado A1 em arquivo, ou a opção de carregar a propriedade DadosPFX, assim não precisa fazer a instalação do mesmo. Já usei a DadosPFX com Wincrypt e funcionou.
  23. Seria o caso de uma devolução, onde alguém emite uma nota de entrada constando o seu CNPJ?
  24. Tenta dessa forma, passando o caminho do .pfx como parâmetro function GetCertificado(APFXFile: String): AnsiString; var FS: TFileStream; begin FS := TFileStream.Create(APFXFile, fmOpenRead); try Result := ReadStrFromStream(FS, FS.Size); // de USES no pacote synautil finally FS.Free; end; end; ACBrNFe1.Configuracoes.Certificados.DadosPFX := GetCertificado('c:\certificado.pfx'); ACBrNFe1.Configuracoes.Certificados.Senha := 'senha';
×
×
  • 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.