Olá, estou começando a usar o AcbrPisCofins e surgiu uma dúvida a respeito de sua implementação no delphi.
Por exemplo, o registro 0200, vejam meu código:
with ACBrSPEDPisCofins1.Bloco_0.Registro0200New do
begin
COD_ITEM := sp_0200.FieldByName('COD_ITEM').AsString;
DESCR_ITEM := sp_0200.FieldByName('DESCR_ITEM').AsString;
TIPO_ITEM := sp_0200.FieldByName('TIPO_ITEM').AsString;
end;
Claro, a linha destacada retornou erro pois TIPO_ITEM não é TString, é TAcbrTipoItem.
Consultando os fontes achei no código abaixo os valores válidos para TIPO_ITEM, então bastaria informar corretamente
( case TIPO_ITEM of
tiMercadoriaRevenda : strTIPO_ITEM := '00';
tiMateriaPrima : strTIPO_ITEM := '01';
tiEmbalagem : strTIPO_ITEM := '02';
etc
)
Minhas perguntas:
Porque não é utilizado no componente o valor (em string por ex.) já definido no manual, não seria mais lógico e fácil? (apenas uma curiosidade sobre o funcionamento do Acbr)
Terei que fazer um "case ao contrário" para converter as string retornada do banco de dados em TAcbrTipoItem, existe uma forma mais "inteligente" pra resolver essa questão? Isso aconteçe com vários outros tipos do Acbr...
Obs: encontrei alguns erros no projeto de exemplo, vou atualizar o Acbr e se ainda estiverem lá espero contribuir com a correção.