Ir para conteúdo
  • Cadastre-se

nolher

Membros
  • Total de ítens

    182
  • Registro em

  • Última visita

Tudo que nolher postou

  1. Bom dia novamente! A url de produção também estão erradas. Verificamos que o componente esta usando a url: https://cte.sefaz.rs.gov.br/ws/CteRecepcaoEvento/CteRecepcaoEvento.asmx E o correto deveria usar a url : https://cte.svrs.rs.gov.br/ws/cterecepcaoevento/CTeRecepcaoEvento.asmx Busquei instruções no próprio fórum e consegui recompilar o ACBrCTEServicos.rc e realizado os devidos testes. Certo de suas atenção, antecipamos nossos agradecimentos Atenciosamente,
  2. nolher

    Evento EPEC CT-e 3.00

    Bom dia a todos! Estamos com problema de envio em EPEC para clientes de São Paulo na versão atualizada CT-e 3.00! Verificamos que o componente esta usando a url: https://homologacao.cte.sefaz.rs.gov.br/ws/CteRecepcaoEvento/CteRecepcaoEvento.asmx E o correto deveria usar a url : https://cte-homologacao.svrs.rs.gov.br/ws/cterecepcaoevento/cterecepcaoevento.asmx Não consegui identificar onde corrigir, alterei o arquivo ACBrCTeServicos.ini e reinstalei o componente e não resolveu. Qual seria o procedimento para correção? Certo de suas atenção, antecipamos nossos agradecimentos Atenciosamente,
  3. Mas uma vez bom dia a todos. Já algum tempo tenho dificuldades em minhas atualizações dos componentes, pois em nossa aplicação trabalhamos com a nomenclatura de xml de acordo com o que esta descrito no manual, isto é, seguimos a nomenclatura definida no item 12.1 Processo de Compartilhamento: CT-e: Número do Protocolo + “_v” + [Versão do arquivo de schema com 5 posições (ex: 99.99)] + “-procCTe.xml”. Exemplo: 143061234567890_v01.00-procCTe.xml. • Inutilização de numeração de CT-e: Número do Protocolo + “_v” + [Versão do arquivo de schema com 5 posições (ex: 99.99)] + “-procInutCTe.xml”. Exemplo: 143061234567890_v01.00-procInutCTe.xml. • Registro de Evento de CT-e: Número do Protocolo + “_v” + [Versão do arquivo de schema com 5 posições (ex: 99.99)] + “-eventoCTe.xml”. Como já discutimos em outra oportunidade, onde até chegamos questionar o Sefaz, é questão de interpretação. Identificamos que já na atual versão já havia disponível parte de código descrito para tratar esse ponto. Sendo assim terminamos de implementar e gostaria que pudessem atualizar na versão atual as classes alteradas, assim como se segue: 1- pcteProcCTe e pcteConversaoCTe onde foi transferido o Tipo TPcnPadraoNomeProcCTe da classe pcteProcCTe para classe pcteConversaoCTe mudando o nome para TPcnPadraoNome Classe alterada pcteProcCTe.pas -> Eliminado o tipo TPcnPadraoNomeProcCTe, corrigido o método já existente ObterNomeArquivo e método PreencherTAG foi corrigido o preenchimento da propriedade "FnProt"; Classe alterada pcteConversaoCTe.pas -> Criado o tipo TPcnPadraoNome com o mesmo padrão do antigo TPcnPadraoNomeProcCTe 2- Na classe ACBrCTeConfiguracoes foi criado uma propriedade chamada PadraoNome com com o tipo TPcnPadraoNome e dendo definido como default "tpnPublico", o que permanecerá com o padrão adotado pela os moderadores ACBr. classe alterada ACBrCTeConfiguracoes.pas -> Criado a propriedade PadraoNome 3- Na classe ACBrCTeWebServices foi implementado na rotinas existente de gravação a chamada do método ObterNomeArquivo; Classe alterada ACBrCTeWebServices.pas -> Na gravação dos xml do CT-e protocolado, na gravação do xml de evento e na gravação do xml de inutilização. Todas as alterações foram identificado com o seguinte comentário: // Alterado por Nilton Olher - ??/??/20017 Certo, de que as alterações não irá impactar para os usuários que utiliza o padrão adotado pela os moderadores da equipe ACBr, solicito essa implementação que irá nos trazer mais facilidade na atualização dos componentes e assim poderemos nos dedicar mais aos testes e implementações que pudermos auxiliar a equipe, evitando o tempo que perdemos e adaptar para nós. Certo, da compreensão e aceito de nossas alterações pelos Moderadores, antecipo nossos mais sinceros agradecimentos. Estamos a disposição para maiores esclarecimentos. Atenciosamente,
  4. Bom dia, Italo! E bom dia a todos! Obrigado Italo pela atenção, enviei a dúvida para os Sefaz de Minas e de São Paulo, e estou aguardando um posicionamento. Vou deixar o tópico aberto e qualquer novidade posto aqui. Mais uma vez muito obrigado pela atenção, Atenciosamente,
  5. Bom dia, Juliomar! Muito Obrigado pela resposta. Tenha um bom dia!
  6. Bom dia! Gostaria de saber se a nova versão do componente ACBrCTe já esta preparado para utilizar o padrão de comunicação TSL? Procurei aqui no forum essa informação e não encontrei ! Sem para o momento, Antecipo agradecimentos,
  7. Bom dia, Italo! Bom, temos o entendimento que o evento de Prestação de Serviço em Desacordo é um evento emitido pelo tomador e vamos disponibilizar para nossos clientes de NF-e. Estamos implementando na versão 3.00 do CT-e já que é um serviço dos webservices de CT-e! Verifiquei que depois que transferi para a versão 3.00 a carta de correção também está me retornando a mesma rejeição. Gerei o seguinte CT-e 131170001241328_v03.00-procCTe.xml Enviei a seguinte carta de correção: 372-ped-eve.xml E tive a seguinte resposta: 372-eve.xml A proposito o envio de evento de cancelamento esta normal. Se poderem me oferecer alguma dica ficarei muito grato. Desde já antecipo agradecimento, Atenciosamente,
  8. Boa tarde|! Gostaria de saber se alguém já realizou teste do novo Evento Prestação do Serviço em Desacordo? E se sim, se tiverem a Rejeição 297: Assinatura difere do calculado? Estamos realizando o teste aqui e não consegui entender o motivo desta rejeição, estamos utilizando o componente ACBrCTe para o envio desde evento. Seque em anexos os xml que envolve o Evento: Xml gerado da NF-e no mesmo período: 333170000426982_v03.10-procNFe.xml Xml gerado do CT-e no mesmo período: 131170001241261_v03.00-procCTe.xml Xml gerado do Evento Prestação do Serviço em Desacordo: 1-ped-eve.xml1-ped-eve.xml Xml de resposta do Webservice: 1-eve.xml Se puderem oferecer alguma dica lhes agradeço. Aproveito a oportunidade para agradecer os apoio que sempre recebi aqui desde grande grupo, e também para parabenizar o excelentes trabalho de toda equipe envolvida no projeto. Sem para o momento, Antecipo agradecimentos,
  9. Bom dia, Juliomar! Você é o cara! Nossa, como não percebi isso! Me senti até envergonhado agora! Valeu mesmo! Dá pra corrigir aí pra gente? Mais uma vez obrigado por sua atenção e a do Italo! Atenciosamente,
  10. Bom dia, Italo! Finalmente consegui encontrar a falha: na classe ACBrNFSeWebServices a função abaixo: function TNFSeEnviarSincrono.TratarResposta: Boolean; var i: Integer; begin FPMsg := ''; FaMsg := ''; FPRetWS := ExtrairRetorno(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.GrupoMsg); // FNotaRetornada := (Pos(FPRetWS, 'CompNfse') > 0); // Original não consegue localizar a tag "CompNfse" simplismente sempre volta em zero. FNotaRetornada := (SeparaDados(FPRetWS, 'Comp2Nfse') <> ''); // Solução troquei a função "Pos" pela nossa conhecida "SeparaDados" Dá pra implementar daí? Desde já agradeço a atenção.
  11. Boa tarde! Estamos finalizando a atualização dos componentes ACBr, e estamos na atualização do ACBrNFSe. Trabalhamos com provedor GovDigital, e não estamos obtendo as informações de retorno da nota, isto é os campos Numero da Nota, Código Verificação e etc. Em anexo temos o xml de retorno 476-recS.xml e o arquivo ini utilizado GovDigital.INI Abaixo rotina para obter dados com todos os campos em vermelho retornando em branco: if ACBrNFSe.EnviarSincrono(W_NrLote, false) then begin W_Status := '03'; W_Nr_Lote := StrToFloat(ACBrNFSe.WebServices.EnviarSincrono.NumeroLote); W_Dt_Protocolo := ACBrNFSe.WebServices.EnviarSincrono.DataRecebimento; W_Nr_Protocolo := ACBrNFSe.WebServices.EnviarSincrono.Protocolo; W_Msg := 'Autorizado o uso da NFS-e'; GravaResultadoLote(W_Nr_Lote, W_Dt_Protocolo, W_Nr_Protocolo, W_Msg, W_Status); for W_I := 0 to ACBrNFSe.NotasFiscais.Count-1 do begin W_Nr := StrToInt(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Numero); W_Nr_RPS := StrToFloat(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Numero); W_Serie := ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Serie; W_CD_Verificacao := ACBrNFSe.NotasFiscais.Items[W_I].NFSe.CodigoVerificacao; W_ChaveAcesso := Mascarar('00',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Prestador.cUF) + FormatDateTime('YYMM',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.DataEmissao) + ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Prestador.Cnpj + '56'+ Mascarar('000000000',StrToInt64(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Numero)); BuscaDadosNota(W_Nr_RPS,W_NR_Pedido,W_Cliente, W_NM_Cliente); SQLDS_AuxNotaUpdate.Close; SQLDS_AuxNotaUpdate.Params[00].AsInteger := W_Nr; // NOT_NR SQLDS_AuxNotaUpdate.Params[01].AsDateTime := StrToDate(FormatDateTime('DD/MM/YYYY',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.DataEmissao)); // NOT_DT_EMISSAO SQLDS_AuxNotaUpdate.Params[02].AsString := W_CD_Verificacao; // NOT_CD_VERIFICACAO_NFSE SQLDS_AuxNotaUpdate.Params[03].AsString := W_Nr_Protocolo; // NOT_NR_PROTOCOLO_AUT_NFE SQLDS_AuxNotaUpdate.Params[04].AsDateTime := W_Dt_Protocolo; // NOT_DT_HORA_PROC_NFE SQLDS_AuxNotaUpdate.Params[05].AsString := W_Status; // NOT_STATUS_NFSE SQLDS_AuxNotaUpdate.Params[06].AsString := W_Msg; // NOT_MSG_STATUS_NFE SQLDS_AuxNotaUpdate.Params[07].AsString := '100'; // NOT_STATUS_RETORNO_NFE SQLDS_AuxNotaUpdate.Params[08].AsString := '02'; // NOT_TIPO_SITUACAO SQLDS_AuxNotaUpdate.Params[09].AsFloat := W_Nr_Lote; // Numero do Lote SQLDS_AuxNotaUpdate.Params[10].AsString := W_ChaveAcesso; // Chave de Acesso SQLDS_AuxNotaUpdate.Params[11].AsDateTime := W_Dt_Transmissao; // Data da Nota SQLDS_AuxNotaUpdate.Params[12].AsFloat := StrToFloat(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Numero); // Nr. RPS SQLDS_AuxNotaUpdate.ExecSQL; GravaNFSeLote(W_Nr_Lote,W_Nr_RPS,W_Nr,W_NR_Pedido,W_Cliente,W_NM_Cliente, W_Serie,W_CD_Verificacao,W_Msg,W_Status); if CheckBoxGerarPDFNFSe.Checked then ACBrNFSe.DANFSE.ImprimirDANFSePDF; end; W_Flag_Transmitido := True; end Certo de vossa atenção de sempre, antecipamos agradecimentos.
  12. Bom dia Juliomar! Muito Obrigado por sua atenção! Aqui, pra nós fizemos com a versão anterior! Mas, ficaremos no aguardo de sua solução. Mais uma vez muito obrigado! Atenciosamente,
  13. Bom dia pessoal! Posso enviar a versão antiga modificada corrigindo o problema de impressão em mais de uma página. Não consegui corrigir na versão atual, pois a forma que esta sendo impresso não dá possibilidade de imprimir mais de uma pagina. Certo de suas atenção, antecipo agradecimentos Atenciosamente,
  14. Bom dia pessoal! Ainda estou aguardando de um posicionamento de nossos moderadores, referente essa nossa implementação. São alterações que não traz nenhum transtorno para a plataforma atual, muito pelo contrario na minha visão traz beneficio! E como já relatei em anteriormente, irão nos oferecer um beneficio muito grande, quando realizamos a compatibilização de versão. Certo de suas atenção, agradecemos o empenho de todos e a constante colaboração, Atenciosamente,
  15. Bom dia pessoal! Ainda estou aguardando o posicionamento dos moderadores, referente essa nossa alteração. Realizando essa alteração teremos uma maior possibilidade de manter o componente sempre atualizado. Certo de suas atenção, antecipo agradecimentos, Atenciosamente,
  16. Bom dia pessoal! Resolvi o problema aqui, voltando a parte da emissão do DAMDFE a versão anterior. funcionou perfeitamente imprimindo as duas páginas. Não seria prudente voltar a versão anterior onde estava funcionando essa parte onde o MDF-e precisa ser impresso em mais de uma página? Certo de suas atenção, antecipo agradecimentos Atenciosamente,
  17. Bom dia a todos! Alguém conseguiu analisar esse problema da emissão do DAMDFE? Se alguém puder, ao menos me oferecer alguma diga, posso me disponibilizar a resolver. Certo de suas atenção, antecipo agradecimentos, Atenciosamente,
  18. Bom dia a todos! Meus nobres Moderadores, por gentileza gostaria de obter um parecer de vocês! Já vi que existe atualizações do componente e para nós esta sendo muito sacarifico para manter o componente atualizado e manter essa integridade exigida por alguns contadores de nossos clientes. Desde já agradecemos a atenção, Atenciosamente,
  19. Bom dia pessoal! Se puderem conceder uma atenção nesse problema, eu lhes agradeço! Estou finalizando a implementação da versão 3.00 e estou pendente somente nesse quesito. Pessoal até tentei corrigir aqui, mas não entendi a nova codificação. O problema é quando a quantidade de CT-e/NF-e no MDF-e ultrapassa o que pode ser impresso em uma unica pagina, isto é, a quantidade de CT-e/NF-e não cabe apenas em uma página, tenho clientes que fazem isso e não poderei liberar desta forma. Na versão anterior isso era possível! Certo da atenção de sempre, antecipo agradecimentos, Atenciosamente,
  20. Bom dia! Ainda aguardo parecer de nossos moderadores Desde já agradecemos a atenção, Atenciosamente,
  21. Bom dia pessoal! Estou com esse mesmo problema. Me desculpem, tente entender as informações postadas assim e não consegui entender! Percebi que o problema é na validação, isto é, antes de ir pro SEFAZ correto? Qual é o procedimento adotado para solução do mesmo? Mais uma vez certo de suas atenção, Antecipamos agradecimentos,
  22. Bom dia a todos, Estamos realizando os testes de emissão do DAMDFe na versão 3.00. Encontra uma falha ao imprimir mais de uma página. Temos cliente que emite muitos CT-e e na impressão não está imprimindo as chaves na primeira página, e emitindo todas as chaves na segunda mesmo não cabendo. segue em anexo xml 31170421912781000160580010000001031000000082-mdfe.xml e pdf Manifesto Eletrônico de Documentos Fiscais - MDF-e.pdf do teste realizado. tentamos resolver mas tivemos dificuldades de entender o funcionamento dessa nova versão. Certo de suas atenção, Atenciosamente,
  23. Bom dia! Italo! Como vc pode observar foi implantado as duas opções, sendo assim não muda o formato que existe hoje! Apenas adiciona a possibilidade de ter essa outra possibilidades de ter esse outro formato, com já debatemos aqui em outra época, qual nomenclatura usar é questão de interpretação, não si se lembra mas chegamos até ver com o SEFAZ. Veja o tópico: Não é uma alteração que irá prejudicar o bom funcionamento do componente, mas irá nos beneficiar por demais pois toda alteração de componente temos que repassar todas essas alterações simplesmente para reimplementa-lá! Sendo assim peço encarecidamente que publique nossas implementações. Certo de vossa atenção antecipo agradecimentos, Atenciosamente,
  24. Boa tarde a todos! Como não obtive resposta sobre meu tópico realizei a devidas implementações e gostaria que seja publicado. Segue em anexo a classes alteradas: 1- Alterado classe da pasta ACBr\Fontes\ACBrDFe\ACBrCTe\PCNCTe 1.1- Unit pcteConversaoCTe.pas, apenas criado um enumerator TModeloCTe = (moCTe, moCTeOS); TVersaoCTe = (ve200, ve300); TpctePadraoNome = (tpnPublico, tpnPrivado); TpcteFormaPagamento = (fpPago, fpAPagar, fpOutros); TpcteTipoCTe = (tcNormal, tcComplemento, tcAnulacao, tcSubstituto); TpcteTipoServico = (tsNormal, tsSubcontratacao, tsRedespacho, tsIntermediario, 1.2- Unit pcteProcCTe.pas 1.2.1- Eliminado o enumerator TPcnPadraoNomeProcCTe 1.2.2- Troco a declaração do enumerator TPcnPadraoNomeProcCTe por TpctePadraoNomepor(utilizando da unit pcteConversaoCTe.pas que é padrão) 1.3- Unit pcteRetEnvEventoCTe.pas criado o procedimento ObterNomeArquivo 1.4- Unit pcteRetInutCTe.pas criado o procedimento ObterNomeArquivo 2- Alterado classe da pasta ACBr\Fontes\ACBrDFe\ACBrCTe 2.1- Unit ACBrCTeConfiguracoes.pas criado a propriedade PadraoNome 2.2- Unit ACBrCTeWebServices.pas implementado os procedimentos para definir o nome do arquivo xml através do procedimento ObterNomeArquiv e propriedade PadraoNome 2.2.1- Xml protocolado: // Salva o XML do CT-e assinado e protocolado if SalvarXML then begin NomeXMLSalvo := CTe.procCTe.ObterNomeArquivo(FPConfiguracoesCTe.Arquivos.PadraoNome); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if NaoEstaVazio(NomeArq) and FileExists(NomeArq) then begin FPDFeOwner.Gravar( NomeArq, XMLOriginal ); // Atualiza o XML carregado NomeXMLSalvo := NomeArq; end; // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if (NomeXMLSalvo <> CalcularNomeArquivoCompleto()) then GravarXML(NomeXMLSalvo); // Salva na pasta baseado nas configurações do PathCTe end; 2.2.2- Gravação do xml a partir da consulta if (FRetCTeDFe <> '') {and FPConfiguracoesCTe.Geral.Salvar} then FPDFeOwner.Gravar( FCTeChave + '-CTeDFe.xml', FRetCTeDFe, sPathCTe); // Salva o XML do CT-e assinado e protocolado NomeXMLSalvo := CTeRetorno.protCTe.ObterNomeArquivo(tpnPublico); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if NaoEstaVazio(NomeArq) and FileExists(NomeArq) then begin FPDFeOwner.Gravar( NomeArq, XMLOriginal ); // Atualiza o XML carregado NomeXMLSalvo := NomeArq; end; // Salva na pasta baseado nas configurações do PathCTe if (NomeXMLSalvo <> CalcularNomeArquivoCompleto()) then GravarXML(NomeXMLSalvo); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo 2.2.3- Gravação do xml da Inutilização FNomeArquivo := PathWithDelim(GerarPathPorCNPJ) + CTeRetorno.ObterNomeArquivo(FPConfiguracoesCTe.Arquivos.PadraoNome); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if FPConfiguracoesCTe.Arquivos.Salvar then FPDFeOwner.Gravar(FNomeArquivo, FXML_ProcInutCTe, GerarPathPorCNPJ); 2.2.4- Gravação de xml de Eventos if FPConfiguracoesCTe.Arquivos.Salvar then begin NomeArq := EventoRetorno.ObterNomeArquivo(EventoRetorno.retEvento.Items[j].RetInfEvento.tpEvento, FPConfiguracoesCTe.Arquivos.PadraoNome); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo PathArq := PathWithDelim(GerarPathEvento(FEvento.Evento.Items.InfEvento.CNPJ)); FPDFeOwner.Gravar(NomeArq, Texto, PathArq); FEventoRetorno.retEvento.Items[J].RetInfEvento.NomeArquivo := PathArq + NomeArq; FEvento.Evento.Items.RetInfEvento.NomeArquivo := PathArq + NomeArq; end; Foram alterações pontuais e de fácil entendimento, sendo assim solicito a atualização em breve. Sem mais para o momento, Atenciosamente;
  25. Bom dia a todos! Estou tentando implementar um procedimento existente no ACBrCTe e estou com algumas dificuldades, e se possível gostaria de ajuda. Existe uma procedimento chamado "ObterNomeArquivo", gostaria de ter uma auxilio para usa-lá, e implementar em todas a geração de arquivos xml. Gostaria ter uma auxílio para melhor utilizar e poder publicar, pois havia criado procedimentos nossos aqui e toda mudança de versão temos um enorme trabalho para entender o código e saber onde colocar nossas implementações, mas vimos que com esse procedimento resolvem nosso problema. Vamos, lá estou atuando na classe "ACBrCTeWebServices" implementei na parte do código onde grava o xml protocolado: with FConhecimentos.Items[J] do begin XMLOriginal := AProcCTe.Gerador.ArquivoFormatoXML; CTe.procCTe.Versao := AProcCTe.Versao;// Alterado por Nilton Olher em 11/04/2016 - Implementado porque no procedimento ObterNomeArquivo a versão não estava chegando if FPConfiguracoesCTe.Arquivos.Salvar then begin SalvarXML := (not FPConfiguracoesCTe.Arquivos.SalvarApenasCTeProcessados) or Processado; // Salva o XML do CT-e assinado e protocolado if SalvarXML then begin NomeXMLSalvo := CTe.procCTe.ObterNomeArquivo(tpnPublico); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if NaoEstaVazio(NomeArq) and FileExists(NomeArq) then begin FPDFeOwner.Gravar( NomeArq, XMLOriginal ); // Atualiza o XML carregado NomeXMLSalvo := NomeArq; end; // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if (NomeXMLSalvo <> CalcularNomeArquivoCompleto()) then GravarXML(NomeXMLSalvo); // Salva na pasta baseado nas configurações do PathCTe end; end; O procedimento ObterNomeArquivo esta na classe "ProcCTe" da seguinte forma: function TProcCTe.ObterNomeArquivo(const PadraoNome: TPcnPadraoNomeProcCTe = tpnPrivado): String; begin Result := FchCTe + '-procCTe.xml'; if PadraoNome = tpnPublico then begin Result := FnProt + '_v' + FVersao + '-procCTe.xml'; // Modificado de Versao para FVersao para serguir o FnProt. end; end; O mesmo procedimento ObterNomeArquivo esta nas classes Gostaria de saber de nossos moderadores, os seguintes detalhes: 1- Se posso trabalhar nessa linha e poder publica-lá ou se tem outras ideias; 2- Se há possibilidades de inserir como propriedade do componente esse parâmetro "PadraoNome"; 3-E se podemos implementar esse procedimento ObterNomeArquivo para as demais classe tento em vista que esta somente na classe "ProcCTe" e temos as classes "TRetInutCTe", Certo de sua atenção antecipamos agradecimentos, Sem mais para o momento,
×
×
  • 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...