Ao copiar da minha maquina para o cliente os arquivos schema, eles ficarão todos em minusculo, esta parte do código faz a comparação usando sensitivo case:
Fazendo com que não ache os arquivos
Compacte os arquivos que estao na pasta "acbr\Exemplos\ACBrDFe\Schemas\", e descompacte na cliente, que se for este o seu problema vai resolver, ou muda a linha para: if (LowerCase(copy(ArqAtual, 1, LenNome)) = LowerCase(NomeSchema)) then
Espero ajudar os que como eu perderão um tempão tentando achar o problema, sendo que a configuração estava toda correta, e na minha maquina funciona tudo certinho.
ARQUIVO: TACBrDFe
TACBrDFe.AchaArquivoSchema
LINHA: if (copy(ArqAtual, 1, LenNome) = NomeSchema) then
Parte do código:
if (AVersao = 0) then
ArqAtual := NomeSchema + CSCHEMA_EXT
else
ArqAtual := NomeSchema + FPSeparadorVersaoSchema + VersaoSchemaDoubleToString(AVersao) + CSCHEMA_EXT ;
P := FListaDeSchemas.IndexOf(ArqAtual);
if P >= 0 then
begin
ArqSchema := FListaDeSchemas[P];
VersaoMaisProxima := AVersao;
end
else if AVersao > 0 then
begin
NomeSchema := NomeSchema + FPSeparadorVersaoSchema;
LenNome := Length(NomeSchema);
For I := 0 to FListaDeSchemas.Count-1 do
begin
ArqAtual := FListaDeSchemas[I];
if (copy(ArqAtual, 1, LenNome) = NomeSchema) then
begin
VersaoArq := VersaoSchemaStringToDouble(ExtrairVersaoNomeArquivoSchema(ArqAtual));
if (VersaoArq > 0) and
(VersaoArq > VersaoMaisProxima) and
(VersaoArq <= AVersao) then
begin
VersaoMaisProxima := VersaoArq;
ArqSchema := ArqAtual;
end;
end;
end;
end;
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.
Arquivo de schema não especificado
em NFC-e - Nota Fiscal do Consumidor Eletrônica
Postado
Ao copiar da minha maquina para o cliente os arquivos schema, eles ficarão todos em minusculo, esta parte do código faz a comparação usando sensitivo case:
Fazendo com que não ache os arquivos
Compacte os arquivos que estao na pasta "acbr\Exemplos\ACBrDFe\Schemas\", e descompacte na cliente, que se for este o seu problema vai resolver, ou muda a linha para: if (LowerCase(copy(ArqAtual, 1, LenNome)) = LowerCase(NomeSchema)) then
Espero ajudar os que como eu perderão um tempão tentando achar o problema, sendo que a configuração estava toda correta, e na minha maquina funciona tudo certinho.
ARQUIVO: TACBrDFe
TACBrDFe.AchaArquivoSchema
LINHA: if (copy(ArqAtual, 1, LenNome) = NomeSchema) then
Parte do código:
if (AVersao = 0) then ArqAtual := NomeSchema + CSCHEMA_EXT else ArqAtual := NomeSchema + FPSeparadorVersaoSchema + VersaoSchemaDoubleToString(AVersao) + CSCHEMA_EXT ; P := FListaDeSchemas.IndexOf(ArqAtual); if P >= 0 then begin ArqSchema := FListaDeSchemas[P]; VersaoMaisProxima := AVersao; end else if AVersao > 0 then begin NomeSchema := NomeSchema + FPSeparadorVersaoSchema; LenNome := Length(NomeSchema); For I := 0 to FListaDeSchemas.Count-1 do begin ArqAtual := FListaDeSchemas[I]; if (copy(ArqAtual, 1, LenNome) = NomeSchema) then begin VersaoArq := VersaoSchemaStringToDouble(ExtrairVersaoNomeArquivoSchema(ArqAtual)); if (VersaoArq > 0) and (VersaoArq > VersaoMaisProxima) and (VersaoArq <= AVersao) then begin VersaoMaisProxima := VersaoArq; ArqSchema := ArqAtual; end; end; end; end;