Foi liberado na paleta de componentes ACBr um novo componente para baixar e manipular a tabela de impostos aproximados do IBPT, segue um exemplo de como utilizar o componente para efetuar o download e manipular os dados baixados.
var
I: Integer;
begin
// configurar a URL do arquivo para ser baixado
// Você configurar como quiser, para o seu site ou servidor proprios
// deixarei a tabela atualizada sempre no endereço
// https://regys.com.br/arquivos/AcspDeOlhoNoImpostoIbptV.0.0.1.csv
if Trim(URL) <> '' then
ACBrIBPTax1.URLDownload := Trim(URL);
// se o path do arquivo não for passado o componente tenta baixar da URL
// informada na propriedade URLDownload
// Se o path for passado ele abre diretamente o arquivo informado
if ACBrIBPTax1.AbrirTabela(Path Arquivo .csv) then
begin
// versão do arquivo
lVersao.Caption := 'Versão: ' + ACBrIBPTax1.VersaoArquivo;
// exemplo de como popular uma tabela com os dados baixados
tmpCadastro.Close;
tmpCadastro.DisableControls;
try
for I := 0 to ACBrIBPTax1.Itens.Count - 1 do
begin
tmpCadastro.Append;
tmpCadastroNCM.AsString := ACBrIBPTax1.Itens[I].NCM;
tmpCadastroEx.AsString := ACBrIBPTax1.Itens[I].Excecao;
tmpCadastroTabela.AsInteger := Integer(ACBrIBPTax1.Itens[I].Tabela);
tmpCadastroAliqNacional.AsFloat := ACBrIBPTax1.Itens[I].AliqNacional;
tmpCadastroAliqInternacional.AsFloat := ACBrIBPTax1.Itens[I].AliqImportado;
tmpCadastro.Post;
end;
finally
tmpCadastro.First;
tmpCadastro.EnableControls;
end;
end;
end;
Existe outros métodos no componente tais como:
Método para efetuar o download da tabela, não esquecer de informar o enderço na propriedade URLDownload
ACBrIBPTax1.DownloadTabela
método para exportar o arquivo para diversos formatos
ACBrIBPTax1.Exportar(path arquivo, tipo);
Parâmetros:
Path Arquivo: caminho onde deseja salvar o arquivo
Tipo: Formato do arquivo, os formatos disponibilizados são: exCSV, exDSV, exXML, exHTML, exTXT
Existe um overload para o método ACBrIBPTax1.Exportar(path arquivo, delimitador), onde o parâmetro delimitador pode ser utilizado para gerar um arquivo Texto com valores separados pelo delimitador informado.
Você também pode procurar por um NCM específico na tabela utilizando esse exemplo:
var
ex: String;
tabela: Integer;
aliqNac, aliqImp: Double;
begin
if ACBrIBPTax1.Procurar(Codigo NCM, ex, tabela, aliqNac, aliqImp) then
begin
ShowMessage(
'Exceção: ' + ex + sLineBreak +
'Tabela: ' + IntToStr(tabela) + sLineBreak +
'Aliq Nac: ' + FloatToStr(aliqNac) + sLineBreak +
'Aliq Imp: ' + FloatToStr(aliqImp)
);
end
else
showmessage('Código não encontrado!');
end;
Descubra mais sobre Régys Borges da Silveira
Assine para receber nossas notícias mais recentes por e-mail.