PiensoPienso: Cual es la salida de este programa?
Tengo una tabla Jugadores con los datos:
Cual es la salida de este programita:
1)
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
----------------
Biscayzacú
--->Lesionado
Bueno
--->Lesionado
Sosa
--->Lesionado
2)
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
----------------
Biscayzacú
--->
Bueno
--->
Sosa
--->
3)
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
----------------
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
Y si no estuviera el primer For each, cual seria el resultado?
Cual es la salida de este programita:
1)
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
----------------
Biscayzacú
--->Lesionado
Bueno
--->Lesionado
Sosa
--->Lesionado
2)
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
----------------
Biscayzacú
--->
Bueno
--->
Sosa
--->
3)
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
----------------
Biscayzacú
--->OK
Bueno
--->Expulsado
Sosa
--->Lesionado
Y si no estuviera el primer For each, cual seria el resultado?
1)
ResponderBorrarcoincido con alejandro. 1)
ResponderBorrar¿Puedo ver la navegación?
ResponderBorrar¿No debería dar un warning por el atributo fuera de for each?
Así como está, la 1).
ResponderBorrarSi la clave de la tabla fuera [Jugador, Estado], entonces la 3)
Si le sacás el primer for each, entonces es la 2).
Acosta:
ResponderBorrarNo daría ningún warning, ya que la navegación la hace simplemente sobre la tabla de Jugadores.
La respuesta es la 1 dado que el mensaje que se construye en la subrutina mantiene el Ultimo valor del atributo usado en el primer for each, y por consiguiente si no estuviera el primer for each la salida sería la segunda parte de la respuesta 2.
Espero se entienda.
Saludos.
La gracia de este programa, es que su resultado varia por su entorno.
ResponderBorrarTal como dice Marcos y dadas las implementaciones actuales de Genexus (9.0 y X), depende de la clave de la tabla el resultado del programa.
Si la clave es Jugador, el resultado es 1), si la clave es Jugador,Estado, la salida es 3) .
Si no se hace el primer for each, el resultado es
Biscayzacú
--->
Bueno
--->
Sosa
--->
o sea que no da ningun aviso, pero no trae nada en el atributo Estado.
Esto es bastante peligroso, porque cuando se hace refactoring se mueve parte del codigo desde dentro de un for each a una subrutina, algunos de los atributos pueden quedar no inicializado, si dicho atributo no esta referenciado dentro del for each. De ser necesario se puede agregar un
defined by Estado
y de esta forma el resultado seria similar al 3).
Gracias a todos por los comentarios!!.
Recién leo el post... llegué tarde... el resultado de cualquier forma y sin importar el for each, las conditions o lo que le pongas es favorable a Nacional... no le des mas vueltas, es un programa de esos "intratables". :P
ResponderBorrarSaludos