× Linguagem de Programação ADVPL

Perguntas Ajuda loop infinito

Mais
10 anos 8 meses atrás #21482 por caio.hps
Ajuda loop infinito foi criado por caio.hps
Galera, to com um probleminha aqui, aparentemente simples. mas nao to entendendo o porque
minha rotina de repente entrou em loop infinito, antes funcionava.
alguem consegue me ajudar a entender?
segue a rotina
Static Function calculo()
local nMedia := 0
local _aPgto1 := {}
DbSelectArea("SE4")
DbGoTop()
do While !EOF()
nMedia := 0    
_aPgto1 := Condicao(100,SE4->E4_CODIGO,,dDatabase)
if len(_aPgto1) == 1
	if _aPgto1[1][1] != dDatabase
		nMedia += _aPgto1[1][1] - dDatabase + 1
	endif
else	
	for i= 1 to len(_aPgto1)
		
		nMedia += 	_aPgto1[i][1] - dDatabase
	next                                     
	nMedia := nMedia / len(_aPgto1)
endif  
	RecLock("SE4", .F.)
		Replace E4_MEDIA with nMedia
	MsUnlock()
SE4->(dbskip())
enddo
Return()

Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 8 meses atrás #21484 por RonaldoLopes
Respondido por RonaldoLopes no tópico Ajuda loop infinito
Boa tarde, aparentemente está correto. Faça umas pequenas mudanças para testar.
While !SE4->(EOF())//MUDEI AQUI
nMedia := 0
Local nI := 0//acrescentei
_aPgto1 := Condicao(100,SE4->E4_CODIGO,,dDatabase)
if len(_aPgto1) == 1
if _aPgto1[1][1] != dDatabase
nMedia += _aPgto1[1][1] - dDatabase + 1
endif
else
for nI := 1 to len(_aPgto1)//mudei aqui

nMedia += _aPgto1[1] - dDatabase
next nI//MUDEI aqui
nMedia := nMedia / len(_aPgto1)
endif
RecLock("SE4", .F.)
Replace E4_MEDIA with nMedia
MsUnlock()
SE4->(dbskip())
End

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.069 segundos
Joomla templates by a4joomla