GeneXus - Cargar varias lineas de subnivel de Transaccion por Business Component

   
Vista:
Imágen de perfil de Ruperto

Cargar varias lineas de subnivel de Transaccion por Business Component

Publicado por Ruperto (23 intervenciones) el 25/03/2015 00:03:09
Hola buenas tardes foristas tengo una consulta espero y me puedan ayudar tengo el sig. problema:
Tengo un transacción llamada evento con un subnivel el cual necesito cargar(rellenar) tal y como lo hace la funcionalidad de GX (por medio de una ventana emergente creo se llama prompt y es generada por genexus), solo que esto lo hace un registro por uno ,ahora bien ya lo modique para que me pueda elegir varios registros (ContactosId) de la grilla(es decir agregue una variable que sea un check de seleccion) y devolver al grid de la transaccion los registros que fueron seleccionados.
He intentado hacer varias cosas y a final de cuentas me trae el ultimo registro creo estoy haciendo mal el loop, lo he trabajado con SDT y DP, por procedimiento y en este momento estoy con Business Component les dejo la estructura de la transacción y el codigo que tengo en el Business Component(aqui he intentado usar if, un comando NEW() que no me funcionó, intente agregar un item() que se fuera creando a partir de una variable autoincremental y lo mismo devolvia el ultimo registro, un EXIT para que hiciera un corte y me saltara a la sig linea)
He tomado algunas referencias de información encontrada pero no me devuelve lo que dice, que es lo que pretendo y se las comparto:
http://www.genexando.com/2013/04/business-component-com-transacao-de.html
http://wiki.genexus.com/commwiki/servlet/hwiki?Category%3ABusiness+Components,
-TRN Evento
EventoId (PK)
EventoNombre
EventoDescripcion
...
Participante (Sublevel)
{
ContactoId (PK)
ContactoNombre
ContactoTelefono
CategoraId
CategoriaNombre
}
-Bussines Component
Varaibles
&Evento---Type BCEvento
&EventoParticipante---Type Evento.Participante
Event Enter
&aux=1
For each line in grid1 //es el grid que esta en el prompt
if &Select=True //variable de tipo check
&pParticipanteId = ParticipanteId //Recupera el valor del participante seleccionado
if &pParticipanteId=1
&EventoParticipante.ParticipanteId=&pParticipanteId
&Evento.Participante.Add(&EventoParticipante)
&Evento.Save()
&aux+=1
endif
else
if &aux>1
&EventoParticipante=new()
&EventoParticipante.ParticipanteId=&pParticipanteId
&Evento.Participante.Add(&EventoParticipante)
&Evento.Save()
If &Evento.Success()
Commit
else
Rollback
endif
endif

exit
endif

endfor
return
EndEvent

Nota: trabajo con Gx X Ev3 Sql Server 2008 Generador .NET
Espero y me puedan apoyar amigos muchas gracias
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