GeneXus - Utilizar For each

   
Vista:

Utilizar For each

Publicado por Julieta (12 intervenciones) el 18/01/2011 21:47:08
Buenas Tardes,
Necesito hacer una consulta sobre algo que estoy intentando hacer de hacer un proceso, para que cuando se quiera ingresar un nuevo registro, busque el último valor del identificador que esté en la tabla y le sume 1, así el usuario no debe insertar el identificador manualmente.
Por ejemplo en pantalla tengo Código Provincia ( lo cual sólo acepta salida), y Nombre de Provincia.
Entonces cuando presiono el Botón Insertar, me coloque en Código Provincia el valor que se le asigna.
Alguien puede guiarme de como puedo hacerlo?
Espero haber sido clara.
Muchas Gracias.
Julieta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Utilizar For each

Publicado por Pedro (58 intervenciones) el 18/01/2011 22:00:19
mm creo que se puede dejar como atributo para que la autocomplete, era era tu consulta?
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar For each

Publicado por Julieta (12 intervenciones) el 18/01/2011 22:07:21
La idea es tratar de no usar el autocomplete, por eso el motivo de todo lo que intento hacer...
Igual Gracias :D
SAludoss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar For each

Publicado por Julio (301 intervenciones) el 19/01/2011 01:36:01
En reglas debes poner algo así:

RegistroId = PTraerIdNuevo.Udp() on BeforeInsert;

El Prc deberá leer la tabla y añadir al valor uno al último registro encontrado y luego retornarlo a la Trn.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar For each

Publicado por Julieta (12 intervenciones) el 19/01/2011 12:12:23
Muchas Gracias..
Ahora mi consulta sería si hay algún ejemplo que me guie de como poder obtener el último registro, y añadirle el valor uno. Y como se retorna a la Trn.
Recién estoy empezando con Genexus...
Desde ya repito muchas gracias.
Saludoss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar For each

Publicado por Julio (301 intervenciones) el 19/01/2011 22:51:43
Aquí va el ejemplo del Prc:

En reglas de la Trn que llama debes poner algo así:

RegistroId = PTraerIdNuevo.Udp() on BeforeInsert;

Ahora el contenido de PTraerIdNuevo:

En Reglas pones esto:
parm(out:&RegistroNuevo)

En Source pones esto:

&RegistroNuevo = 0
for each (Id) // El paréntesis sirve para que ordene la tabla descendentemente
&RegistroNuevo = Id
exit
endfor
&RegistroNuevo += 1

El retorno es automático porque GX lo hace implícitamente.

La variable &RegistroNuevo debe ser exactamente del mismo tipo que RegistroId
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Utilizar For each

Publicado por Julieta (12 intervenciones) el 20/01/2011 12:34:07
Buen Día,
Muchas Gracias Julio desde ya, me sirvió mucho el ejemplo que me diste.
Agregué además en la Rule de la transacción(siguiendo con tu ejemplo del ID):

ID= ProcedureProvincia.Udp()
on aftervalidate;

Y me funcionó correctamente.
Ahora mi duda es porque no me anda la parte de eliminación y actualización de un registro, me dejó funcionar y no entiendo el motivo, ya que no toqué nada de eso.

Saludos
Julieta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar For each

Publicado por Julieta (12 intervenciones) el 20/01/2011 14:32:24
Buenas..
Te comento que lo he solucionado me faltaba la sentencia If Insert...
ID= ProcedureProvincia.Udp() if insert
on aftervalidate

Muchas Gracias !!!
Saludosssss
Shuli
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar