Br3n0k 1 Denunciar post Postado Junho 23, 2015 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: A parte do codigo do delphi: Compartilhar este post Link para o post Compartilhar em outros sites
Br3n0k 1 Denunciar post Postado Junho 23, 2015 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