Re: [gx-l] No encuentro como "traducir" un Procedimiento en un DataProvider...

Diego,


Yo no lo sé. Pero seguramente Luis Murillo sí.
El tenía un desafío interno en ARTech, el cual consistía en que le dieran
un PRC que no se pudiese expresar como DataProvider.

Saludos,
gab

Readme in...: http://paper.li/gxsoft
Follow me...:
http://twitter.com/gxsoft 





2011/6/27 Diego Rostagnol <elrosti@gmail.com>
Estimados:

Para mi los DataProviders son un tema bastante nuevo porque recién hace un par de meses arranque a trabajar con a X EVO1, por lo cual no la tengo muy clara.

Supongamos que tengo un SDT colección de "Productos". la TRN es así:

Productos
--------------------
*PrdNro
PrdNombre

Tambien tengo una estructura que almacena en que lugares está colocado ese producto (Puede estar en mas de un lugar):

GondolaProducto
------------------------------
*GonID
*PrdCod
GonNro   <------------- Número de Gondola


Ahora supongamos que tengo un DataProvider al que quiero pasarle dos rangos rango de ID de Gondola y que me cargue todos los productos que hay dentro del primer rango, ademas otra condición es que el producto tambien esté colocado en un segundo rango de góndolas y que el Número de gondola del primer rango, sea menor al número de gondola del segundo rango


Yo en un proc haría lo siguiente

// Recorro todos los productos colodados en ese rango de gondolas
For Each
where GonID > &GonIDDesde and GonNro < &GonIDHasta
          &AuxGonNro = GonNro
          &AuxPrdCod = PrdCod
          // Ahora chequeo que ese producto tambien este colocado en otra gondola con un número mayor
          do 'CargoProducto'
EndFor


Sub 'CargoProducto'
         for each
         where GonID > &GonIDDesde2 and GonNro < &GonIDHasta2
         where GonNro > &AuxGonNro
         where PrdCod = &AuxPrdCod
                           /* ACA CARGO LOS DATOS DEL PRODUCTO */
         endfor
endsub

En un DataProvider intenté hacer lo siguiente:

SDTProductos
where GonID > &GonIDDesde and GonNro < &GonIDHasta
{
       &AuxGonNro = GonNro
       &AuxPrdCod = PrdCod

        SDTitem
        where PrdCod in DataSelector(&GonIDDesde2, &GonIDHasta2, &AuxPrdCod, &AuxGonNro) // Este dataselector tiene los mismos filtros en el sub 'CargoProducto'
        {
                PrdCod = PrdCod
                PrdNom = PrdNom
        }
}


Esto no funcionó, uso un dataselector porque no encontré otra forma, al parecer me devuleve correctamente el tema de que el Producto esté en ambos Rangos, pero no me respeta la condición del número de Gondola, supongo que el tema es que los rangos vienen por parametro y la condición del número de gondola la estoy cargando alli dentro, está claro que esto está mal, obviamente no me está haciendo 2 recorridas, es una sola a la que le mete todos los WHERE, pero no encuentro cual es la manera correcta de escribir esto.

Saludos.

--
Diego Rostagnol
Uruguay

--
Has recibido este mensaje porque estás suscrito al grupo "GeneXus" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a genexus@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a genexus+unsubscribe@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/genexus?hl=es.

0 Response to "Re: [gx-l] No encuentro como "traducir" un Procedimiento en un DataProvider..."

Publicar un comentario