anonymous Log in
Search
Recents:
v3.0
gx-l
Web Panel con 2 Grids Anidados no funciona el For Each Line in Gridx
04/06/19 23:08

ealvarezp

Replies: 1

Hola Foro, los molesto con una consulta: Utilizo Genexus 16 U2 y tengo un Web Panel con dos Grid Anidados, el Grid del Primer Nivel (Grid1) con las Categorías de una Transacción de Categoría y el Grid de Segundo Nivel (Grid2) con los Exámenes de Cada Categoría. Utilizo Variables. Cargo el Web Panel y los datos se muestran perfectamente sin ningún error. Las variables de 2do Nivel son 3: &ExamenId &ExamenNombre &ExamenSeleccionado (que es un Check Box con 2 valores posibles ‘Si’ y ‘No’). Tengo un botón para procesar los registros de los Grid y actualizar una transacción con los datos seleccionados. Par lo cual llamo un procedimiento. El evento del Botón es así: (las variables &Track, &Error y &Mensaje son solo para un trace de lo que hace) Event 'Guardar e Imprimir' &Track = 'Mensaje original' &Error = 0 &mensaje = 'Inicial - ' For Each Line in Grid1 For Each Line In Grid2 &Track = 'Entro al For Grid2' &Error = &Error + 1 If &ExamenSeleccionado = 'Si' &mensaje = &mensaje + &ExamenNombre + &Error.ToString() /* InsertaOrdenExamen.Call(&FichaNo,&ExamenesId,&ExamenesObs) */ EndIf EndFor EndFor &ExamenesObs = &Track msg(&mensaje) Endevent Si lo ejecuto así con el procedimiento de grabación “InsertaOrdenExamen” comentado, entra al “For Each Line in Grid1” y luego entra el “For Each Line in Grid2” luego entra al IF de “&ExamenSeleccionado” si lo selecciono, si no lo selecciono no entra como debe de ser. Los mensajes que me Muestra son coherentes con lo que quiero y no tengo ninguna duda que ejecuta lo contenido en cada For Each. Sin embargo si descomentarizo el Procedimiento “InsertaOrdenExamen”, no entra nunca al For Each del Grid1 y por lo tanto tampoco al Grid2, los mensajes que muestra son: “Mensage Original” y “Inicial –“ …..los valores que asigno antes de entra al Grid1….. si quito el procedimiento muestra los valores concatenados de todos los nombres de cada file del grid etc… como debe de ser, si entra.. si pongo cualquier cosa ejecutable: procedimiento, WebPanel, etc… nunca entra.. Alguna idea de cual puede ser mi error, según logre ver algunos problema parecidos podría ser un BUG… pero no estoy seguro….la duda es por que si activo o no un proc(o cualquier objeto) dentro del Grid2 condiciona a que entre o no a procesar cada línea pareciera error o hay algo que no conozco del for each line in gridx. Caulquier orientación será agradecida. Gracias ----------------------------------------- Para Suscribirse/Desuscribirse: http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,1 Por consultas owner-gx-l@gxtech.com.uy
Replies

planejo

05/06/19 18:07
Hola Eric Usted dijo que las variables de 2do Nivel son 3: &ExamenId &ExamenNombre &ExamenSeleccionado Sin embargo, en el procedimiento usted está utilizando &ExamenesId Por lo tanto, supongo que esta (&ExamenesId ) es una variable del nivel 1. En la llamada del procedimiento “InsertaOrdenExamen intente no utilizar directamente las variables del Grid. Defina otras variables para el call Ejemplo: Event 'Guardar e Imprimir' &Track = 'Mensaje original' &Error = 0 &mensaje = 'Inicial - ' For Each Line in Grid1 &FichaNoNuevo = &FichaNo &ExamenesIdNuevo = & ExamenesId For Each Line In Grid2 &Track = 'Entro al For Grid2' &Error = &Error + 1 If &ExamenSeleccionado = 'Si' &mensaje = &mensaje + &ExamenNombre + &Error.ToString() InsertaOrdenExamen.Call(&FichaNoNuevo,&ExamenesIdNuevo,&ExamenesObs) /* InsertaOrdenExamen.Call(&FichaNo,&ExamenesId,&ExamenesObs) */ EndIf EndFor EndFor &ExamenesObs = &Track msg(&mensaje) Endevent Dieter Hüskes PLANEJO Informática Ltda. Blumenau - SC - Brasil


Back to gx-l