Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Regis, bom dia. Acho que o problema esta no print "Erro_1" abaixo. Na alteração realizada  por Moro em 18/02/2015 - Provedor Infisc Versão XML 1.1. Quando clico no teNormal deveria ser acionada a unit pcnConversao, mas esta acionando a pnfsConversao.

 

Obs.:  

1º A sua sugestão não funcionou Ide.tpEmis := TpcnTipoEmissao.teNormal; //teNormal; conforme descrito no "print 2".

2º O print 3 mostra a declaração do uses.

 

 

  • Moderadores
Postado

Para funcionar a dica que passei antes a unit pcnConversao tem que estar declarada.

Se você possuir dois enumeradores com nomes iguais, o delphi vai usar o da unit que estiver declarada, então você precisa declarar pcnConversao e mostrar a ele qual tipo de enumerador deseja usar.

Você já declarou tanto pcnConversao quanto pnfsConversao, então em teoria deveria funcionar a forma que lhe passei, pois você está informando o tipo de enumerador que deseja utilizar.

 

Qual é a versão de Delphi que você está utilizando?

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Consultores
Postado

Bom dia ALA,

 

Acabei de compilar o programa exemplo do CT-e e não ocorreu nenhum erro.

 

Compilei também a minha aplicação que emite CT-e e nada, nenhum erro, um detalhe importante, nessa aplicação tenho um Data Module que contem os componentes: ACBrNFe, ACBrCTe, ACBrMDFe e ACBrNFSe.

 

Observação: eu sempre compilo usando o Build.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Italo bom dia. Tb tenho um ."pas" especifico para os componentes do ACBr. O engraçado que estava funcionando, depois que baixei a ultima versão que começo acontecer este problema. Tem outra forma de setar esta tag

 

Ide.tpEmis := teNormal;//TpcnTipoEmissao.teNormal; 

 

Esta ocorrendo o problema no CT-e e NF-e. O Delphi esta entendendo que o teNormal esta declarado na pnfsConversao;

 

Poderia trocar o nome da pnfsConversao = >  TnfseTEmissao = ( TeNormalNFSe, TeContigenciaNFSe );

Editado por ALA
  • Consultores
Postado

ALA,

 

Na minha aplicação que emite CT-e no form que contem a rotina que alimenta o componente ACBrCTe declarei em uses a unit: pcnConversao apenas.

 

Idem na aplicação que emite NF-e no form que contem a rotina que alimenta o componente ACBrNFe esta declarado em uses a unit: pcnConversao apenas.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Moderadores
Postado

Fiz o teste simulando o seu datamodule aqui é funciona como lhe passei antes, volto a insistir, basta informar o tipo de numerador antes dele:

unit Unit1;

interface

uses
  pcnConversao, pnfsConversao, 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ACBrNFSe, ACBrNFe, ACBrCTe;

type
  TForm1 = class(TForm)
    ACBrCTe1: TACBrCTe;
    ACBrNFe1: TACBrNFe;
    ACBrNFSe1: TACBrNFSe;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  with ACBrCTe1.Conhecimentos.Add.CTe do
  begin
    ide.tpEmis := TpcnTipoEmissao.teNormal;

  end;

  with ACBrNFe1.NotasFiscais.Add.NFe do
  begin
    ide.tpEmis := TpcnTipoEmissao.teNormal;

  end;

  with ACBrNFSe1.NotasFiscais.Add.NFSe do
  begin
    TipoEmissao := TnfseTEmissao.teNormal;

  end;
end;

end.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Régys, realizei a alteração conforme descrito acima. Hai funcionou blz. Poderia realiza esta alteração nos fontes do componente. Obrigado

  • Consultores
Postado

Boa tarde ALA,

 

Você não esta informando corretamente em uses a unit conforme o Régys já expôs.

 

Outra coisa os tipos dos numeradores são diferentes, veja:

 

pnfsConversao.pas temos:

 

  TnfseTEmissao = ( TeNormal, TeContigencia );
 
pcnConversao.pas temos:
 
  TpcnTipoEmissao = (teNormal, teContingencia, teSCAN, teDPEC, teFSDA, teSVCAN, teSVCRS, teSVCSP, teOffLine);
 
Se na unit que contem a sua rotina que alimenta o componente da NF-e você deve incluir em uses pcnConversao e não pnfsConversao.
 
Informando a unit correta não vai ocorrer erro de compilação.
 
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo, bom dia. Se eu remover a pnfsConversao ocorre os  erros em anexo..A solução que encontrei foi alterar o nome da constante

  // Alterado por Ala em 25/02/2015

  TnfseTEmissao = ( TeNormalNFSe, TeContigenciaNFSe );
 
Postado
 
 

Julionar .. me desculpe pela falha ... ja criei novo tópico .. poderia por favor se possivel dar um Help?

Marcelo Henrique Morini
Analista de Sistemas e Programador
Plásticos Assencio Ltda
[email protected]
Ibitinga - SP
Delphi Tokio 10.2 (ACBr - Jedi - Zeos - Rave - QuickReport - FastReport) > Firebird 2.5 em Windows 10 64b

  • Consultores
Postado

Boa tarde ALA,

 

Porque você não declara o pcnConversao ou pnfsConversao somente na unit que realmente vai ser necessária?

 

Eu não acredito que você tenha uma unit que tenha todas as rotinas que alimenta todos os componentes.

 

Tenho uma aplicação que emite NF-e e que emite MDF-e mas as rotinas que alimentam os componentes estão em Units separadas.

 

Inclusive tenho uma outra aplicação que emite o CT-e e que emite MDF-e e que futuramente vai emitir NFS-e e ainda se utiliza do ACBrNFe para ler os dados do XML de uma NF-e.

 

Mas tudo isso esta separado cada Unit realizando a sua tarefa.

 

Uma transportadora ao realizar um transporte intermunicipal tem que emitir o CT-e.

Agora se o transporte for interestadual e carga fracionada, alem dos CT-e tem que emitir o MDF-e.

Por outro lado se o transporte for dentro do município ela deve emitir uma NFS-e.

 

Se você separar as coisas, não terá problemas.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Obrigado pela resposta Italo, eu alterei a rotina do componente e esta funcionando. Apenas coloquei NFSe no final da constante. Para alterar todo o meu projeto fica complicado pois estou com muitas demandas....

  • Este tópico foi criado há 3552 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.