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;