Liberei agora a pouco a atualização para o componente ACBrIBPTax contemplando o novo campo de descrição que foi adicionado e também uma busca parcial de NCM, basta atualizar o repositório ACBr em suas máquinas e verificar o que foi alterado por meio do aplicativo exemplo.
Régys,
Como eu faço para recuperar a propriedade (tabela) importada, todos os outros campos eu consegui recuperar só o da tabela que não, não consegui identificar o tupo de campo que está
na propriedade (tabela), veja como eu fiz, tentei com o tipo string e integer e nenhum deu certo
está dando este erro.
nTabela := ArqImp.Itens[1].Tabela;
[Error] Unit1.pas(77): Incompatible types: ‘Integer’ and ‘TACBrIBPTaxTabela’
Veja que a propriedade é um tipo enumerado, você pode fazer assim:
Usando Cast:
Integer(ArqImp.Itens[1].Tabela);
Usando Case:
case ArqImp.Itens[1].Tabela do
tabNCM: Result := '0';
tabNBS: Result := '1';
tabLC116: Result := '2';
end;
Pode também usar os métodos:
function TabelaToString(const ATabela: TACBrIBPTaxTabela): String;
function StringToTabela(const ATabela: String): TACBrIBPTaxTabela;
Régys, como eu faço para o valor do campo (Tabela), não estou conseguindo
saber qual o tipo de campo que eu devo definir para receber essa campo.
Não consegui entender a dúvida.
Bom dia Régys!!
Está ocorrendo um erro e creio ser por conta da TACBrIBPTaxTabela = (tabNCM, tabNBS);
Agora o arquivo tem três tipos de Tabelas: 0, 1 e 2;
Vou verificar já subo a alteração.
No manual não consta o 2, por isso passou em branco, enviei um e-mail ao IBPT para que façam a atualização, já vou atualizar o componente.
Acerto efetuado já está disponível no repositório.
Ok Régys, tudo certo agora…:D
Bom dia Rédys, acabei de fazer um update nos fontes do ACBr “https://acbr.svn.sourceforge.net/svnroot/acbr/trunk” e não veio a atualização com o campo descrição. O endereço dos fontes é este mesmo???
O endereço mudou, o SourceForge fez uma atualização em todos os enderços hospedados nele, veja aqui como alterar para o novo endereço: Alteração no endereço do repositório do Projeto ACBr
Eu mantive o mesmo componente,apenas removi a descrição do arquivo csv e tudo ficou funcionando normalmente…o duro são os contadores falando q o calculo esta errado, e quando vc diz que esta tomando como base a tabela IBPT eles não sabe o que é.. ai é osso…
Sim se remover a descrição passa sem problema, já entrei em contato com o pessoal do IBPT para acertar a tabela, até o fim do dia eles vão liberar uma nova acertada.
Regis o Endereco continua o mesmo?
https://acbr.svn.sourceforge.net/svnroot/acbr/trunk/Exemplos/ACBrIBPTax/tabela/AcspDeOlhoNoImpostoIbptV.0.0.2.csv
esse fica na barra ta dandop erro 404
O SourceForge agora mudou, não tem como mais acessar direto, baixe a tabela e hospede ela em um endereço conhecido, ou use o método abrir passando o caminho do arquivo local.
Blz ja me cadastrei no ibpt, to esperando receber, ou vc pode disponibilizar link?
Já disponibilizei, veja no blog por favor.
Regys desculpe esta sendo chato, mas estou pegando o cliente data set do exemplo e importando pro meu banco e so importa 4167 registos, quando fui olhar a rotina que alimenta do dataset do exemplo ele so traz 4167, mesmo o arquivo tendo 11641 registros,sabe pq?
Ja vi alguns registros tem apenas 6 campo como exemplo
01012100;;0;–Reprodutores de raça pura;26.75;27.35;
01023110;;0;Prenhes ou com cria ao pé;14.80;15.40;
na ROTINA PopularItens vc so esta pegando item com 7 registros, sabe pq?, obg desculpe o jeito
Na verdade são 7, o ultimo item sempre vai estar em branco.
foi mau, ne isso nao na descricao dos ncm tem descricao com ; como delimitador é ; os itens na popular itens ficam com mais de colunas dai não importam
Isso mesmo, vou enviar um e-mail a eles falando sobre o erro e ver no que dá.
Aparentemente tem produtos na tabela que tem “;” na descrição, isso está causando um erro na importação.
Resolvi no populaitens fazendo o seguinte:
Alimentando os 3 primeiros e os 2 ultimos, depois concatenando o do meio assim, so que ficou lento, acho que da pra melhorar
Item.DelimitedText := Arquivo.Strings[I];
if Item.Count >6 then
begin
// codigo;ex;tabela;descricao;aliqNac;aliqImp;0.0.2
with Itens.New do
begin
NCM := Item.Strings[0];
Excecao := Item.Strings[1];
Tabela := TACBrIBPTaxTabela(StrToInt(Trim(Item.Strings[2])));
if Item.Count>7 then
begin
for x := 3 to Item.Count-3 do
Descricao :=Descricao+’ ‘+Item.Strings[x];
end
else
Descricao :=Item.Strings[3];
AliqNacional := StringToFloatDef(Item.Strings[Item.Count-2], 0.00);
AliqImportado := StringToFloatDef(Item.Strings[Item.Count-1], 0.00);
end;
Isso não vai funcionar corretamente porque existem outros problemas referentes a limitações do delphi que encontrei, estou reescrevendo o popula itens e a IBPt vai liberar nova tabela até o fim do dia também com as descrições acertadas.
Boa tarde Regys, verifiquei que o problema esta o carácter “ç” em todos os produtos que tem isso esta dando problema… acho que vamos ter que fazer a separação das colunas manualmente ao invés de deixar na mão do TStringList.
Entrei em contato com a Mayara, o pessoal do IBPT já está trabalhando no acerto do problema e até o fim do dia eles liberarão uma nova tabela acertada, estou alterando também o componente porque percebi que o Delphi trata o texto delimitado de uma forma diferente, sempre considerando alguns caracteres como delimitadores, nas versões mais novas temos uma propriedade StrictDelimitedText para acertar isso nas versões antigas do delphi não existe, vou fazer a separação manualmente, mas de qualquer forma vamos aguardar a nova tabela do IBPT.
Regys, fiz algumas alterações no método PopulaItens, resolveu o meu prolema com a nova tabela versão 0.0.2, segue o novo código:
-Editado
Editei o comentário, porque vai ficar gigante na página.
Já enviei uma correção para o repositório, agora lê normalmente, mas ainda persiste o problema de ter “;” na descrição dos NCMs, isso eu não vou alterar, porque é um erro da tabela, já entrei em contato com o pessoal da IBPT e até o fim do dia eles vão acertar, basta atualizar e aguardar a nova versão da tabela que tudo vai ficar ok.
Cara pra mim funcionou blz importou 11640 linhas so tem uma pequena correcao no codigo, mas confio em vc se não funciona , não funciona, vou esperar entao, obg
Então, eu fiz vários testes aqui, se fosse Delphi 2010 resolvia fácil ativando uma propriedade, mas como tem que funcionar para qualquer delphi e lazarus, então fiz a rotina a mão, ficou beleza, só persiste mesmo o problema de ter o ‘;’ isso é um erro, porque o padrão csv define o delimitador e ele não pode ser usado no valor do campo, então é um erro de estrutura, mas isso eu chequei com o pessoal do IBPT e prometeram arrumar até o fim do dia.
Estou aguardando do ibpt, mas ficou algum problema ainda so importou 11386 e são 11640, mesmo assim ficou bem mais elegante da forma que vc fez
Os que não importaram são os que tem o “;” no meio da descrição, quando o IBPT arrumar a tabela, ai não teremos mais problemas.
Refiz a implementação da leitura da linha da tabela, agora ficou a prova de bala, testei aqui e está ok com a nova tabela sem gerar problemas.