PIENSOPIENSO: Cual es la salida de este programa?
Tengo una tabla con la estructura
*Key Numeric(4)
Filter Numeric(4)
Description VarChar(40)
y un procedure GeneXus que hace
//Grabo registros en la tabla (esta vacía)
New
Key = 1
Filter = 1
Description = 'UNO'
EndNew
New
Key = 2
Filter = 2
Description = 'DOS'
EndNew
// Recorro la tabla, muestro los valores leídos
for each
where Filter > 0
do 'ShowMessage'
endfor
Sub 'ShowMessage'
Msg(Format("Key = %1, Filter = %2, Description = %3", Key, Filter,Description), status)
EndSub
1)
Key = 1, Filter = 1, Description = UNO
Key = 2, Filter = 2, Description = DOS
2)
Key = 1, Filter = 1, Description = DOS
Key = 2, Filter = 2, Description = DOS
3)
Key = 2, Filter = 2, Description = DOS
Key = 2, Filter = 2, Description = DOS
Justifique su respuesta.
Ahora si.
ResponderBorrarOpcion 2.
En el for each se carga el valor de Key y Filter, pero el de Descripcion no. Descripcion queda con el valor del segundo new (2)
En primer lugar diría que eso tiene 3 errores: el Sub no tiene nombre , "Showmessage" no existe, y el tercero en el sub no hay for each osea no esta en ninguna tabla y quiere mostrar atributos, depende el lenguaje eso puede dar error o mostrar cualquier cosa.
ResponderBorrarSi, tenes razon. Ya lo corregi.
BorrarEscribir codigo y que quede bien formateado en Blogger es complicado pues el editor HTML cambia cosas sin avisar.
La respuesta correcta es la 2, por los motivos que dice Roberto en la respuesta de arriba.
Es un error comun cuando se pasa codigo que esta dentro de un for each a una subrutina, por eso lo puse para que fuera mas visible.