Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Br3n0k

'XXXXX' is not a valid integer value

Recommended Posts

Salve, arrumei uma baita de uma encrenca, sou programador, porem só tenho experiência web (PHP), e foi jogado na minha mão uma source em Pascal, eu não conhecia o pascal ate anti ontem quando comecei a quebrar a cabeça para corrigir os erros e continuar o projeto, agora a grande questão, eu estou com um bug quando clico em um botão que vai importar faixas de informações de um texto

 

ao executar a procendure TFPrincipal.ImportarExtratoVivos2 através de um Button eu recebo a seguinte mensagem de erro...

'Total' is not a valid integer value:

converter.jpg

 

A parte do codigo do delphi:

code.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procendure completa

 

 

procedure TFPrincipal.ImportarExtratoVivos2;
var
iPrimeiroItemPagina, x, i : Integer;
iCodigoImportacao : Integer;
iTotalLinhas, iLinhasAgora : Integer;
iPrimeiroItemPagina2 : Integer;
iTotalMachos, iTotalFemeas : Integer;
iTotalImportados : Integer;
iProporcaoUltimaPagina : Integer;

begin
try
Screen.Cursor := crSQLWait;
BtImportarExtrato.Enabled := False;
BtLimpar.Enabled := False;
MmImportacao.Enabled := False;
RzProgressBar1.PartsComplete := 0;

//Inicializa as variaveis
iTotalLinhas := MmImportacao.Lines.Count;
iLinhasAgora := 0;
iTotalMachos := 0;
iTotalFemeas := 0;
iTotalImportados := 0;
iProporcaoUltimaPagina := 0;

//Valida o arquivo
ValidaArquivoImportacao;

//Insere o cabeçalho da importacao e ja pega a chave da tabela importacao para inserir os itens
iCodigoImportacao := ImportaCabecalhoExtratoVivos;

LbAnimaisExtrato.Caption := IntToStr(sqlImportacaoTOTAL_MACHO.AsInteger + sqlImportacaoTOTAL_FEMEA.AsInteger);
LbTotalMachosExtrato.Caption := IntToStr(sqlImportacaoTOTAL_MACHO.AsInteger);
LbTotalFemeaExtrato.Caption := IntToStr(sqlImportacaoTOTAL_FEMEA.AsInteger);

if sqlImportacaoItens.Active = False then
sqlImportacaoItens.Open;

//Importa a primeira pagina que eh diferente
//Identifica o inicio de pagina
if MmImportacao.Lines[0] = 'MINISTÉRIO DA AGRICULTURA, PECUÁRIA E ABASTECIMENTO' then
ApagaLinhaMmImportacao(5);

//Pega a data
if Trim(DataExtratoVivos) = '' then
DataExtratoVivos := Trim(Copy(MmImportacao.Lines[0],0,Pos('Página',MmImportacao.Lines[0])-1));

//Pega a quantidade de paginas
QntPaginas := StrToInt(Trim(Copy(MmImportacao.Lines[0],Pos('de',MmImportacao.Lines[0])+2,10)));
LbQntPagina.Caption := IntToStr(QntPaginas);
RzProgressBar1.TotalParts := QntPaginas;

//Apaga a linha da data e da quantidade de paginas
ApagaLinhaMmImportacao(1);
iLinhasAgora := MmImportacao.Lines.Count;
//RzGroupBox2.Caption := 'Dados [' + IntToStr(iTotalLinhas) + ' - '+ IntToStr(iLinhasAgora) + ']';

for x := 0 to 40 do
begin
sqlImportacaoItens.Append;
sqlImportacaoItensCODIGO.AsInteger := PegaProximoGenerator('IMPORTACAO_ITENS');
sqlImportacaoItensCODIGO_IMPORTACAO.AsInteger := iCodigoImportacao;
sqlImportacaoItensNUMERO_SISBOV.AsString := Trim(MmImportacao.Lines[x]);
sqlImportacaoItensNUMERO_SISBOV_6DIG.AsString := Copy(Trim(MmImportacao.Lines[x]),9,6);
sqlImportacaoItensNUMERO_SISBOV_7DIG.AsString := Copy(Trim(MmImportacao.Lines[x]),9,7);
sqlImportacaoItensDATA_INCLUSAO.AsDateTime := StrToDate(Trim(MmImportacao.Lines[x+41]));
sqlImportacaoItensSEXO.AsString := Trim(MmImportacao.Lines[x+82]);

if AnsiUpperCase(sqlImportacaoItensSEXO.AsString) = 'MACHO' then
Inc(iTotalMachos)
else
Inc(iTotalFemeas);
LbTotalMachosImportados.Caption := IntToStr(iTotalMachos);
LbTotalFemeasImportados.Caption := IntToStr(iTotalFemeas);

sqlImportacaoItensRACA.AsString := Trim(MmImportacao.Lines[x+123]);
sqlImportacaoItensDATA_NASCIMENTO.AsDateTime := StrToDate(Trim(MmImportacao.Lines[x+164]));
sqlImportacaoItensINVENT.AsString := Trim(MmImportacao.Lines[x+219]);
sqlImportacaoItens.ApplyUpdates(-1);
Application.ProcessMessages;

Inc(iTotalImportados);
LbAnimaisImportados.Caption := IntToStr(iTotalImportados);
end;

//Apaga a primeira pagina
//ApagaLinhaMmImportacao(266);
iPrimeiroItemPagina2 := 266;

if Length(MmImportacao.Lines[266]) > 15 then
iPrimeiroItemPagina2 := 267;

iLinhasAgora := MmImportacao.Lines.Count;
//RzGroupBox2.Caption := 'Dados [' + IntToStr(iTotalLinhas) + ' - '+ IntToStr(iLinhasAgora) + ']';

//Faz um loop das paginas para importar todos os animais
//Exit;
try
// dsImportacaoItens.Enabled := False;
//Como começa do 2 incremeta o progress pra nao ficar 99% concluido
RzProgressBar1.IncPartsByOne;
for i := 2 to QntPaginas do
begin
LbPaginaAtual.Caption := IntToStr(i);
RzProgressBar1.IncPartsByOne;

//Verifica se é a ultima pagina pra fazer o tratamento diferenciado
if i = QntPaginas then
begin
iProporcaoUltimaPagina := StrToInt(LbAnimaisExtrato.Caption)-iTotalImportados;

for x := 0 to iProporcaoUltimaPagina-1 do
begin
sqlImportacaoItens.Append;
sqlImportacaoItensCODIGO.AsInteger := PegaProximoGenerator('IMPORTACAO_ITENS');
sqlImportacaoItensCODIGO_IMPORTACAO.AsInteger := iCodigoImportacao;
sqlImportacaoItensNUMERO_SISBOV.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2]);
sqlImportacaoItensDATA_INCLUSAO.AsDateTime := StrToDate(Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+(iProporcaoUltimaPagina)]));
sqlImportacaoItensSEXO.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+(iProporcaoUltimaPagina*2)]);

if AnsiUpperCase(sqlImportacaoItensSEXO.AsString) = 'MACHO' then
Inc(iTotalMachos)
else
Inc(iTotalFemeas);
LbTotalMachosImportados.Caption := IntToStr(iTotalMachos);
LbTotalFemeasImportados.Caption := IntToStr(iTotalFemeas);

sqlImportacaoItensRACA.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+(iProporcaoUltimaPagina*3)]);
sqlImportacaoItensDATA_NASCIMENTO.AsDateTime := StrToDate(Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+(iProporcaoUltimaPagina*4)]));
sqlImportacaoItensINVENT.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+(iProporcaoUltimaPagina*5)]);
sqlImportacaoItensDATA_CADASTRO.AsDateTime := Now;
sqlImportacaoItens.ApplyUpdates(-1);
Application.ProcessMessages;

Inc(iTotalImportados);
LbAnimaisImportados.Caption := IntToStr(iTotalImportados);
end;

end
else
begin
//Faz um loop para percurer todos os animais das páginass
for x := 0 to 41 do
begin

sqlImportacaoItens.Append;
sqlImportacaoItensCODIGO.AsInteger := PegaProximoGenerator('IMPORTACAO_ITENS');
sqlImportacaoItensCODIGO_IMPORTACAO.AsInteger := iCodigoImportacao;
sqlImportacaoItensNUMERO_SISBOV.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2]);
sqlImportacaoItensDATA_INCLUSAO.AsDateTime := StrToDate(Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+42]));
sqlImportacaoItensSEXO.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+84]);

if AnsiUpperCase(sqlImportacaoItensSEXO.AsString) = 'MACHO' then
Inc(iTotalMachos)
else
Inc(iTotalFemeas);
LbTotalMachosImportados.Caption := IntToStr(iTotalMachos);
LbTotalFemeasImportados.Caption := IntToStr(iTotalFemeas);

sqlImportacaoItensRACA.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+126]);
sqlImportacaoItensDATA_NASCIMENTO.AsDateTime := StrToDate(Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+168]));
sqlImportacaoItensINVENT.AsString := Trim(MmImportacao.Lines[x+iPrimeiroItemPagina2+210]);
sqlImportacaoItensDATA_CADASTRO.AsDateTime := Now;
sqlImportacaoItens.ApplyUpdates(-1);
Application.ProcessMessages;

Inc(iTotalImportados);
LbAnimaisImportados.Caption := IntToStr(iTotalImportados);
end;

//Apaga a primeira pagina
//ApagaLinhaMmImportacao(262);
iPrimeiroItemPagina2 := iPrimeiroItemPagina2 + 261;

iLinhasAgora := MmImportacao.Lines.Count;
//RzGroupBox2.Caption := 'Dados [' + IntToStr(iTotalLinhas) + ' - '+ IntToStr(iLinhasAgora) + ']';
//exit; //
end;
//dsImportacaoItens.Enabled := True;
Application.ProcessMessages;
end;
finally
// dsImportacaoItens.Enabled := True;
end;
finally
ValidaImportacao;
BtImportarExtrato.Enabled := True;
BtLimpar.Enabled := True;
MmImportacao.Enabled := True;
Screen.Cursor := crDefault;
end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.