Hola.
Si dentro del bucle tienes que hacer servir la instruccion 'iter', tienes que hacer el bucle tal que as�:
KCLDTO SETLL FCLDTOR
Dou %Eof(Fcldto)
Kcldto READe FCLDTOR
If %Eof(Fcldto)
Leave
If Campo=0
iter
endif
Endif
| "gerardo.santillana"
<[EMAIL PROTECTED]>
Enviado por: [EMAIL PROTECTED] 18/11/04 17:31
|
|
Pues yo lo hago de esta manera y no he tenido problemas con el indicador %EOF en bucles anidados
SetLL Nserm Lblserl2;
ReadE Nserm Lblserl2;
DoW not %Eof(Lblserl2);
R_Lblw=Wwhs;
R_Lbll=Wloc;
R_Ltdate=Vtdate;
Update RLBLS2;
ReadE Nserm Lblserl2;
EndDo;
Gerardo Santillana
IT Department
Delphi Mechatronic Systems
Phone USA (956) 554 5832
Phone MX 01868 8128163 x.5832
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On
Behalf Of [EMAIL PROTECTED]
Sent: Thursday, November 18, 2004 10:33 AM
To: [EMAIL PROTECTED]
Subject: Re: [TV041119] RPG sin indicadores �sigue siendo RPG? (era
%Eof)
La soluci�n era el DOU. Mi problema(no se si os paso a los que habeis cambiado
al Free) es que como por ejemplo en la consulta que hice esta ma�ana,que
al quitar indicadores hay que cambiar un poco la estuctura y la logica
del programa,
Antes era algo as�(esto no es free, es ILE normal):
KCLDTO SETLL FCLDTOR
Dow
Not *in69
Kcldto READe FCLDTOR
69
If
*in69
Leave
Endif
.
.. Enddo
i ahora seria as�:
KCLDTO SETLL FCLDTOR
Dou
%Eof(Fcldto)
Kcldto READe FCLDTOR
If
%Eof(Fcldto)
Leave
Endif
.
.
Enddo
Y a veces me encabezono en hacerlo con la l�gica antigua .
y a veces nos pilla encabezonados en que la l�gica es la misma.
| Fernando P�rez <[EMAIL PROTECTED]>
Enviado por: [EMAIL PROTECTED] 18/11/04 16:59
|
|
[EMAIL PROTECTED] escribi�:
Hola Juanra. Como parte implicada te contesto lo que puedo porque despues de esta prueba no veo claro lo del %Eof:
Pronto vamos a cambiar de versi�n de S.O. y podremos programar con el Free y tengo entendido que la tendencia es que si no se suprimen,al menos se restringe el uso de indicadores(si alguien est� m�s puesto que yo en el tema del Free,lo cual no es dificil y me quiere corregir,bienvenido sea). O sea, que estoy haciendo un programa de los de siempre, que en resumidas cuentas es un bucle(un poco especial eso s�) dentro de otro,he visto que cuando accedo por segunda vez al segundo bucle,%Eof est� activo.
He supuesto que si IBM fomenta la desaparicion de indicadores tendria estas cosas previstas,y me he preguntado c�mo se haria esto sin *inxx y s�lo con %Eof(fichero). La verdad,es que el bucle de dentro es un poco especial,pero se tienen que contemplar todas las posibilidades. En un programa 'normal',antes del Setll habria apagado el indicador y listos. A ver los que programen en free c�mo tratan el tema de indicadores.
Bueno, pues la respuesta a lo del bucle ya te la han dado los compa�eros: lees antes de entrar en el bucle o haces DOU en lugar de DOW.
M�s que para repetir la soluci�n contesto para reiterar que pienso que el cambio merece la pena, no a�ade complejidad alguna y ofrece un c�digo mucho m�s claro.
--
Saludos.
Fernando P�rez
Cer�mica Saloni. Dpto. Sistemas
| **************************************************************************************** Note: The information contained in this message may be privileged and confidential and thus protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the message and deleting it from your computer. Thank you. **************************************************************************************** |
