In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Filtros con dataset relacionados

Foro público de Xailer en español
Responder
Pepe Lutrillo
Mensajes: 45
Registrado: Lun Ago 15, 2005 7:58 pm

Filtros con dataset relacionados

Mensaje por Pepe Lutrillo »

Buenos Dias:
Tengo un par de dataset que están relacionados.
::oDataSet:SetRelation("REGION" , ::oDataSetRegiones)
Dentro de un TDBBrowse creo un campo calculado de esta forma:
WITH OBJECT oCol1 := TDBBrwColumn():New(::oBrw)
:cHeader := "Region"
:nAlignment := taLEFTHEADERCENTER
:lVisible := .T.
:OnGetData := { |o, c, i| c:=::oDataSetRegiones:CLAVE}
:lCanFilter := .T.
:FilterEval := "UPPER('%') $ ::oDataSetRegiones:CLAVE"
END
-> En donde ::oDataSetRegiones:CLAVE hace referencia a un campo del dataset relacionado.
Pero al ejectar el filtro, el TDBBrowse no filtra la información.
¿Es posible filtrar sobre campos calculados que estén formados a través de otro Dataset?
Mil gracias por su ayuda
Pepe Lutrillo
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Filtros con dataset relacionados

Mensaje por zeasoftware »

Usa el nombre del campo:
WITH OBJECT oCol1 := TDBBrwColumn():New(::oBrw)
:cHeader := "Region"
:nAlignment := taLEFTHEADERCENTER
:lVisible := .T.
:oDataField := "Region"
///:OnGetData := { |o, c, i| c:=::oDataSetRegiones:CLAVE}
:lCanFilter := .T.
:FilterEval := "UPPER('%') $ Upper(Region)"
END
Espero te sirva.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
Pepe Lutrillo
Mensajes: 45
Registrado: Lun Ago 15, 2005 7:58 pm

Filtros con dataset relacionados

Mensaje por Pepe Lutrillo »

Hola Ramón.
Funciona agregando el alias del campo
ilterEval := "UPPER('%') $ Upper(Regiones->Clave)
Gracias por tu ayuda
Saludos,
Pepe Lutrillo
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Filtros con dataset relacionados

Mensaje por zeasoftware »

Es lo mismo, el DataSet encapsula el filtro en el area de trabajo.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
Pepe Lutrillo
Mensajes: 45
Registrado: Lun Ago 15, 2005 7:58 pm

Filtros con dataset relacionados

Mensaje por Pepe Lutrillo »

Ramón,
Es lo mismo si el campo solo existe en uno de los datasets.
Si tienes un campo (por ejemplo, CLAVE) en ambos dataset, debes identificarlo con el alias.
A eso te refieres?
Gracias nuevamente.
Pepe Lutrillo
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Filtros con dataset relacionados

Mensaje por ignacio »

Pepe,
Piensa que para realizar el filtro se usa en el caso de DBFs el clásico
comando SET FILTER TO que como sabrás se utiliza sobre la tabla activa
principalmente. No obstante, si realizas una relación con SET RELATION
supongo que es muy probable que funcione un SET FILTER con un campo de la
tabla relacionada, pero lo más importante es que tengas en cuenta es que el
RDD no tiene ni idea sobre tu campo calculado y por lo tanto en la expresión
del 'FilterEval' sólo podrás usar expresiones que el RDD con el comando SET
FILTER TO pueda comprender.
Un saludo
"Pepe Lutrillo" <pepelutrillo[at]hotmail[dot]com> escribió en el mensaje de
noticias:4c5b8c08$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Buenos Dias:
>
> Tengo un par de dataset que están relacionados.
>
> ::oDataSet:SetRelation("REGION" , ::oDataSetRegiones)
>
> Dentro de un TDBBrowse creo un campo calculado de esta
> forma:
>
> WITH OBJECT oCol1 := TDBBrwColumn():New(::oBrw)
> :cHeader := "Region"
> :nAlignment := taLEFTHEADERCENTER
> :lVisible := .T.
> :OnGetData := { |o, c, i| c:=::oDataSetRegiones:CLAVE}
> :lCanFilter := .T.
> :FilterEval := "UPPER('%') $ ::oDataSetRegiones:CLAVE"
> END
>
> -> En donde ::oDataSetRegiones:CLAVE hace referencia a un
> campo del dataset relacionado.
>
> Pero al ejectar el filtro, el TDBBrowse no filtra la
> información.
>
> ¿Es posible filtrar sobre campos calculados que estén
> formados a través de otro Dataset?
>
> Mil gracias por su ayuda
> Pepe Lutrillo
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
Marcelo Coelho Silva
Mensajes: 269
Registrado: Sab May 31, 2008 4:49 pm
Ubicación: Brasil
Contactar:

Filtros con dataset relacionados

Mensaje por Marcelo Coelho Silva »

Ignacio Ortiz de Zúñiga,
Em revisão futura do Xailer, poderia-se corrigir isto, fazendo que o
filtro reconheça o campo calculado assim como um campo normal.
Att.
Marcelo Coelho Silva
Brasil.
Em 09/08/2010 08:57, Ignacio Ortiz de Zúñiga escreveu:
> Pepe,
>
> Piensa que para realizar el filtro se usa en el caso de DBFs el clásico
> comando SET FILTER TO que como sabrás se utiliza sobre la tabla activa
> principalmente. No obstante, si realizas una relación con SET RELATION
> supongo que es muy probable que funcione un SET FILTER con un campo de
> la tabla relacionada, pero lo más importante es que tengas en cuenta es
> que el RDD no tiene ni idea sobre tu campo calculado y por lo tanto en
> la expresión del 'FilterEval' sólo podrás usar expresiones que el RDD
> con el comando SET FILTER TO pueda comprender.
>
> Un saludo
>
> "Pepe Lutrillo" <pepelutrillo[at]hotmail[dot]com> escribió en el mensaje
> de noticias:4c5b8c08$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Buenos Dias:
>>
>> Tengo un par de dataset que están relacionados.
>>
>> ::oDataSet:SetRelation("REGION" , ::oDataSetRegiones)
>>
>> Dentro de un TDBBrowse creo un campo calculado de esta
>> forma:
>>
>> WITH OBJECT oCol1 := TDBBrwColumn():New(::oBrw)
>> :cHeader := "Region"
>> :nAlignment := taLEFTHEADERCENTER
>> :lVisible := .T.
>> :OnGetData := { |o, c, i| c:=::oDataSetRegiones:CLAVE}
>> :lCanFilter := .T.
>> :FilterEval := "UPPER('%') $ ::oDataSetRegiones:CLAVE"
>> END
>>
>> -> En donde ::oDataSetRegiones:CLAVE hace referencia a un
>> campo del dataset relacionado.
>>
>> Pero al ejectar el filtro, el TDBBrowse no filtra la
>> información.
>>
>> ¿Es posible filtrar sobre campos calculados que estén
>> formados a través de otro Dataset?
>>
>> Mil gracias por su ayuda
>> Pepe Lutrillo
>>
>>
>>
Att.

Marcelo Coelho Silva
Brasil.
Responder