Prezados desenvolvedores de Xailer,
Detectamos um pequeno problema em relação ao filtro do browse:
Num browse, com tríªs colunas, ligado a query abaixo:
::oSQLQuery:cSelect:="SELECT srv_campo_1, if(srv_campo_2 IS NULL,'0','1') AS campo_2, srv_campo_3 FROM srv_tabela" ::oSQLQuery:lOpen:=.T.
::oProdutos:AddCalcField("campo_3",{|oField| strzero(oField:oDataSet:srv_campo_3(dsFIELD),3)})
onde as colunas estão relacionadas com os campos srv_campo_1, campo_2 e campo_3, respectivamente. O filtro do Browse só funciona corretamente no primeiro campo, nos demais ele não filtra os registros.
O problema ocorre nas colunas que são adicionadas com AddCalcField() e nas colunas com "apelidos"...
Obrigado pela atenção,
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.
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.
Problema com filtros
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problema com filtros
Buenos días,
Desgraciadamente el filtro del Browse no es demasiado inteligente y me temo que hay que ayudarle utilizando la propiedad TBrwColumn:FilterEval e inlcuso a veces resulta imposible en cuyo caso puede usar la propiedad TBrwColumn:lCanFilter.
Esto es debido a que realmente el filtro no se hace en local sino que se vuelve a realizar la consulta al motor SQL y cuando los campos del select son complicados me temo que hay poco que se pueda hacer. No obstante existe una solución que consiste en utilizar un TMemDataset, en dicho caso los filtros se resuelven localmente y no tiene ningún problema. Utilice el método TDataSource:QueryMemDataset() para ello. Su gran limitación es que ha de considerar el dataset de sólo lectura ya que las modificaciones que haga (que se pueden hacer) no se reflejarán en la base de datos SQL.
Saludos
Desgraciadamente el filtro del Browse no es demasiado inteligente y me temo que hay que ayudarle utilizando la propiedad TBrwColumn:FilterEval e inlcuso a veces resulta imposible en cuyo caso puede usar la propiedad TBrwColumn:lCanFilter.
Esto es debido a que realmente el filtro no se hace en local sino que se vuelve a realizar la consulta al motor SQL y cuando los campos del select son complicados me temo que hay poco que se pueda hacer. No obstante existe una solución que consiste en utilizar un TMemDataset, en dicho caso los filtros se resuelven localmente y no tiene ningún problema. Utilice el método TDataSource:QueryMemDataset() para ello. Su gran limitación es que ha de considerar el dataset de sólo lectura ya que las modificaciones que haga (que se pueden hacer) no se reflejarán en la base de datos SQL.
Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com