anonymous Log in
Search
Recents:
v3.0
sd
Grid con Variables (Sin tabla base)
19/03/21 12:41

horacioc

Replies: 8

Buenos días.
Quería hacerles una consulta.
tengo un panel y quiero cargar un grid con variables pero en ejecución
no me muestra ni el grid.
Mi duda es sí se puede hacer esto en SD o de que manera se puede hacer
para mostrar los datos sin tabla base.
Estoy trabajando con GX16 U10 android.
Desde ya muchas gracias.
Replies

cristian

19/03/21 13:31
Hola, Si eso funciona, como estas cargando el grid? -- *Cristian Inthamoussu* Genexus Development | GeneXus +598 2601 2082 | Simplifying Software Development [image: GeneXus] El vie, 19 mar 2021 a las 13:23, Horacio Cabrera ()

jizquierdo

19/03/21 14:36
Si se puede. Lo principal es tener claro que la carga de la parte variable (el grid) se hace en el evento Load la carga la podrías hacer desde un Data Provider o recibiendo una SDT colección de un Business Component. Saludos, [image: Logo] [image: Logo] *Jorge Izquierdo* *Technical Account Manager* t. (+593) 2 380 9553 ext. 216 e. jizquierdo@doit-innovations.com a. Av. Naciones Unidas E2-30 y Núñez de Vela, Ed. Metropólitan Of. 309 - Quito, Ecuador El vie, 19 de mar. de 2021 a la(s) 11:23, Horacio Cabrera ( hcabrera@cambadu.com.uy)

horacioc

19/03/21 14:38
Estoy cargando los datos en una colección de tipo SDT y después disparo el evento refresh para cargar el grid. &ColGiros = DPSocGir(8, &ASocNroSoc), siendo DPSocGir un DataProvider La colección se carga sin problema, el problema es al cargar el grid. event Load     for &ItemGiros in &ColGiros         &GirId = &ItemGiros.CatId         &GirDsc = &ItemGiros.CatDsc         &GirFch = &ItemGiros.CsocFchVD         Load     endfor endevent Probé hacerlo en el evento load del grid ( Grid.Load ) y tampoco me funcionó. El 19/03/2021 a las 13:31, Cristian Inthamoussu

jizquierdo

19/03/21 14:49
En el evento Refresh deberías tener la llamada al DP. El evento Load estaría bien. No se a que te refieres con que disparas el evento Refresh, en realidad es un evento de sistema que no hace falta que lo ejecutes con el comando Refresh. Saludos, [image: Logo] [image: Logo] *Jorge Izquierdo* *Technical Account Manager* t. (+593) 2 380 9553 ext. 216 e. jizquierdo@doit-innovations.com a. Av. Naciones Unidas E2-30 y Núñez de Vela, Ed. Metropólitan Of. 309 - Quito, Ecuador El vie, 19 de mar. de 2021 a la(s) 12:39, Horacio Cabrera ( hcabrera@cambadu.com.uy)

horacioc

19/03/21 15:06
Jorge tengo un evento ControlValueChanged  de la siguiente manera: event &ASocNroSoc.ControlValueChanged     composite         //cargo los giros         &ColGiros = DPSocGir(8, &ASocNroSoc)         refresh()     endcomposite endevent Según el valor ingresadso son los datos que va a mostrar. En base a lo que me comentas, Como actualizo los datos del grid sin ejecutar el comando refresh()? Muchas gracias El 19/03/2021 a las 14:49, Jorge Izquierdo

mcrispino

19/03/21 17:03
Horacio: El problema es que la asignación &ColGiros = DPSocGir(8, &ASocNroSoc) se ejecuta en un evento de usuario que se ejecuta local al dispositivo, mientras que el evento Load ejecuta en el servidor, que no sabe de esta asignación. Para solucionar el problema se me ocurren dos opciones: 1. Hacer la asignación de la colección &ColGiros en el evento Load, antes del for. De esa forma la colección va a estar disponible. Queda el detalle de cómo hacer llegar el nuevo valor de &ASocNroSoc al servidor... Ahí también hay varias opciones. Hay casos en los que el especificador puede resolverlo, y al darse cuenta que se usa en el evento Load y se asigna en un evento de usuario ya lo manda automáticamente. Me queda la duda si funciona cuando lo cambia el usuario y el Refresh se dispara desde el ControlValueChanged... Si no otra opción es agregarlo a la regla parm() del objeto, ahí lo debería mandar al servidor cuando se hace un Refresh. Y la tercer opción es llamar a un Procedure desde el evento ControlValueChanged que grabe el valor en una WebSession (del lado del servidor) y luego el evento Load lo lea de allí. 2. En lugar de usar variables, agregar un Grid basado en el SDT. Lo más fácil para eso es agregar un atributo al form, y elegir la variable que es una colección. Eso automaticamente agrega un Grid y permite seleccionar los campos del SDT que queremos incluir. Espero haber sido claro, si no vuelves a preguntar :) Saludos. *Marcos Crispino* Research & Development | GeneXus +598 2601 2082 | Simplifying Software Development [image: GeneXus] On Fri, Mar 19, 2021 at 3:06 PM Horacio Cabrera

horacioc

19/03/21 17:26
Impecable Marcos pruebo y te aviso. Muchas gracias El 19/03/2021 a las 17:03, Marcos Crispino

jizquierdo

19/03/21 17:26
Creo que el asunto va porque en el Panel pide un dato y por eso usa el evento ControlValueChanged Quizá no se muy limpia la salida pero de pronto haría un Panel que pida y dato y se lo pase como parámetro a otro Panel con el grid. Saludos, [image: Logo] [image: Logo] *Jorge Izquierdo* *Technical Account Manager* t. (+593) 2 380 9553 ext. 216 e. jizquierdo@doit-innovations.com a. Av. Naciones Unidas E2-30 y Núñez de Vela, Ed. Metropólitan Of. 309 - Quito, Ecuador El vie, 19 de mar. de 2021 a la(s) 15:04, Marcos Crispino ( mcrispino@genexus.com)


Back to sd