GeneXus - Contar filas de un grid

   
Vista:

Contar filas de un grid

Publicado por Juan (3 intervenciones) el 20/12/2010 18:52:03
Hola gente, quisiera saber cuantas filas tiene un grid de una transaccion para evitar que el usuario ingrese un registro con cabecera pero sin detalle.

Desde ya muchas gracias!
Juan
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:Contar filas de un grid

Publicado por Julio (301 intervenciones) el 20/12/2010 22:59:01
Esto depende un poco si la aplicación es Cliente/Servidor o no, podrias probar utilizando una variable que vaya contando las lineas, algo como esto:

&CuentaLineas = &CuentaLineas + 1 on BeforeInsert, BeforeUpdate ,BeforeDelete , AfterLevel level(AttDetalle);

error('No hay detalle...') if &CuentaLineas = 0 on BeforeComplete;

No olvides comentar la versión GX, lenguaje, DBMS y si la alicación es win o web.
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:Contar filas de un grid

Publicado por Juan (3 intervenciones) el 21/12/2010 10:57:01
Gracias Julio! Muy ingeniosa tu solución
Es win Gx9 con SQL

Lo estoy probando
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:Contar filas de un grid

Publicado por Juan (3 intervenciones) el 22/12/2010 11:10:54
Al final quedo asi, donde PContarFilas es un procedure con un foreach que cuenta las filas de un reg existente para hacer update.

&CuentaLineas = 0 on AfterValidate;
//msg('cero ' + str(&CuentaLineas)) on AfterValidate;

&CuentaLineas = udf(PContarFilas,SolicitudNro) if update on AfterUpdate;
//msg('guardados ' + str(&CuentaLineas)) on AfterUpdate;

&CuentaLineas = &CuentaLineas + 1 on beforeInsert, BeforeUpdate level RopaId;
//msg('cuenta ' + str(&CuentaLineas)) on beforeInsert, BeforeUpdate level RopaId;

&CuentaLineas = &CuentaLineas - 1 on BeforeDelete level RopaId;
//msg('Borro ' + str(&CuentaLineas)) on BeforeDelete level RopaId;

//msg('Final ' + str(&CuentaLineas)) on AfterLevel Level RopaId;
error('Solicitud vacia, ingrese al menos una indumentaria') if &CuentaLineas = 0 on BeforeComplete;

Tuve un problema con la grilla luego de una inserción que resulta en el error, por lo que volvi la grilla invisible y obligo a generar un nuevo registro.

Saludos y gracias!
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