anonymous Log in
Search
Recents:
v3.0
gx-l
Web Panel con 2 Grids Anidados no funciona el ForEachLine in Gridx
05/06/19 20:34

ealvarezp

Replies: 1

Hola Dieter, use las variables “xG” que no están ningún Grid ni en ningún lado del WP pero el resultado es exactamente el mismo, si pongo un objeto ejecutable, nunca entra a los For Each y si quito el objeto entra perfectamente a los 2. Así quedo ya limpio For Each Line in Grid1 For Each Line In Grid2 If &ExamenesSel = 'Si' &FichaNoxG = &FichaNo &ExamenesIdxG = &ExamenesId &ExamenesObsxG = &ExamenesObs InsertaOrdenExamen.Call(&FichaNoxG,&ExamenesIdxG,&ExamenesObsxG) EndIf EndFor EndFor Creo lo reportare a Genexus. De: PLANEJO INFORMATICA LTDA - (47) 3338-2511 Enviado: miércoles, 5 de junio de 2019 13:37 Para: 'Erick Alvarez'; gx-l@gxtech.com.uy Asunto: RES: [gx-l] Web Panel con 2 Grids Anidados no funciona el ForEachLine in Gridx En este caso el ejemplo quedará así: Event 'Guardar e Imprimir'                 &Track = 'Mensaje original'                 &Error = 0                 &mensaje = 'Inicial - '                 For Each Line in Grid1                                &FichaNoNuevo = &FichaNo                                For Each Line In Grid2                                                &Track = 'Entro al For Grid2'                                                &Error = &Error + 1                                                If &ExamenSeleccionado = 'Si'                                                                &mensaje = &mensaje + &ExamenNombre + &Error.ToString()           &ExamenIdNuevo = &ExamenId                                                                                                  InsertaOrdenExamen.Call(&FichaNoNuevo,&ExamenIdNuevo,&ExamenesObs)                                                   /*        InsertaOrdenExamen.Call(&FichaNo,&ExamenesId,&ExamenesObs) */                                                EndIf                                EndFor                 EndFor                 &ExamenesObs = &Track                 msg(&mensaje) Endevent De: Erick Alvarez [mailto:servinfma@gmail.com] Enviada em: quarta-feira, 5 de junho de 2019 16:15 Para: planejo@planejo.com.br; gx-l@gxtech.com.uy Assunto: RE: [gx-l] Web Panel con 2 Grids Anidados no funciona el For EachLine in Gridx Gracias Dieter por su respuesta, lo “S” en exámenes esta demás, fue un error de digitación. Voy a probar lo de las variables nuevas y le dejare saber. Gracias De: PLANEJO INFORMATICA LTDA - (47) 3338-2511 Enviado: miércoles, 5 de junio de 2019 12:07 Para: gx-l@gxtech.com.uy CC: servinfma@gmail.com Asunto: RES: [gx-l] Web Panel con 2 Grids Anidados no funciona el For EachLine in Gridx 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 De: Erick Alvarez [mailto:servinfma@gmail.com] Enviada em: terça-feira, 4 de junho de 2019 20:08 Para: gx-l@gxtech.com.uy Assunto: [gx-l] Web Panel con 2 Grids Anidados no funciona el For Each Line in Gridx 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 Livre de vírus. www.avast.com. ----------------------------------------- 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 21:07
Erick, A título de información, solamente utilizo GX 9 con VB, no tengo experiencia con Web Panel y también no hablo español. Google traductor me está ayudando. Sigue otra sugerencia: Intente poner la llamada al procedimiento en una subrutina. For Each Line in Grid1 For Each Line In Grid2 If &ExamenesSel = 'Si' &FichaNoxG = &FichaNo &ExamenesIdxG = &ExamenesId &ExamenesObsxG = &ExamenesObs Do 'InsertaOrdenExamen' EndIf EndFor EndFor Sub 'InsertaOrdenExamen' InsertaOrdenExamen.Call(&FichaNoxG,&ExamenesIdxG,&ExamenesObsxG) Endsub


Back to gx-l