Nota Fiscal - Erro de Logica
Oi pessoal!
Estou com um probleminha bem chato!
Estou tentando fazer a rotina para gravar os Códigos de classificação fiscal
para os itens de uma nota fiscal (tipo: a, b, c) em um Array
(ACodigoClassificacaoFiscal[cont]) conforme a classificação fiscal de cada
um (presente no array AClassificacaoFiscal[cont]).
Ok... o caso eh que para isso preciso gravar outros dois arrays que servirão
como ´legenda´ (CodigoFiscal[ContFiscal] e Fiscal[ContFiscal]). Os valores
não podem repetir em nenhum destes 2 arrays de legenda, portanto soh
aumentarão quando for verificado um item com a classificação fiscal
diferente de todas as outras.
O caso eh que quando eu executo o programa ele motra os valores do primeiro
item da nota e depois mostra valores em branco (nauqlas showmessages);
por que isto estah acontecendo¿
como posso ajeitar isto¿
ai vai meu codigo
{laço que percorre os itens da nota}
while ContFiscal {contador da ´legenda´}< ItensPorNota do
begin
{atribui o valor ´A´ a primeira posição do array de codigos da legenda }
if ContFiscal = 0 then
begin
CodigoFiscal[ContFiscal]:=´A´;
Fiscal[ContFiscal]:=AClassificacaoFiscal[cont];
end;
{laço para a verificação de se a classificação fiscal do array de itens da nota existe no array da legenda}
for Zero:=0 to ContFiscal do
begin
if AClassificacaoFiscal[cont] = Fiscal[Zero] then
begin
ACodigoClassificacaoFiscal[cont]:=CodigoFiscal[Zero];
CFExiste:=True;
break;
end
else
begin
CFExiste:=False;
end;
end;
{Se não existir no array então grava-lo como o proximo item}
if (CodigoFiscal[ContFiscal+1] = ´´) and (CFExiste=False) then
begin
ShowMessage(IntToStr(ContFiscal));
CodigoFiscal[ContFiscal]:=chr(ord(CodigoFiscal[ContFiscal-1])+1);
Fiscal[ContFiscal]:=AClassificacaoFiscal[cont];
end;
ContFiscal:=ContFiscal+1;
ShowMessage(CodigoFiscal[ContFiscal-1]);
ShowMessage(Fiscal[ContFiscal-1]);
end;
-----------------
Valeu!!!
Aquele Abraço!!!
Tiago
Estou com um probleminha bem chato!
Estou tentando fazer a rotina para gravar os Códigos de classificação fiscal
para os itens de uma nota fiscal (tipo: a, b, c) em um Array
(ACodigoClassificacaoFiscal[cont]) conforme a classificação fiscal de cada
um (presente no array AClassificacaoFiscal[cont]).
Ok... o caso eh que para isso preciso gravar outros dois arrays que servirão
como ´legenda´ (CodigoFiscal[ContFiscal] e Fiscal[ContFiscal]). Os valores
não podem repetir em nenhum destes 2 arrays de legenda, portanto soh
aumentarão quando for verificado um item com a classificação fiscal
diferente de todas as outras.
O caso eh que quando eu executo o programa ele motra os valores do primeiro
item da nota e depois mostra valores em branco (nauqlas showmessages);
por que isto estah acontecendo¿
como posso ajeitar isto¿
ai vai meu codigo
{laço que percorre os itens da nota}
while ContFiscal {contador da ´legenda´}< ItensPorNota do
begin
{atribui o valor ´A´ a primeira posição do array de codigos da legenda }
if ContFiscal = 0 then
begin
CodigoFiscal[ContFiscal]:=´A´;
Fiscal[ContFiscal]:=AClassificacaoFiscal[cont];
end;
{laço para a verificação de se a classificação fiscal do array de itens da nota existe no array da legenda}
for Zero:=0 to ContFiscal do
begin
if AClassificacaoFiscal[cont] = Fiscal[Zero] then
begin
ACodigoClassificacaoFiscal[cont]:=CodigoFiscal[Zero];
CFExiste:=True;
break;
end
else
begin
CFExiste:=False;
end;
end;
{Se não existir no array então grava-lo como o proximo item}
if (CodigoFiscal[ContFiscal+1] = ´´) and (CFExiste=False) then
begin
ShowMessage(IntToStr(ContFiscal));
CodigoFiscal[ContFiscal]:=chr(ord(CodigoFiscal[ContFiscal-1])+1);
Fiscal[ContFiscal]:=AClassificacaoFiscal[cont];
end;
ContFiscal:=ContFiscal+1;
ShowMessage(CodigoFiscal[ContFiscal-1]);
ShowMessage(Fiscal[ContFiscal-1]);
end;
-----------------
Valeu!!!
Aquele Abraço!!!
Tiago
Anonymous
Curtidas 0