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.

b

Foro de Xailer profesional en español
Responder
Jose Lopez Carrasco
Mensajes: 215
Registrado: Lun Oct 20, 2008 11:38 pm

b

Mensaje por Jose Lopez Carrasco »

Quisiera hacer una busqueda incremental en un oDBBrowse1 con una tabla
oSQLTable1 de access,
he probado con la propiedad oSeek, el metodo Seek()
y el evento:
oBrw:OnSeek := {|o,c| DbSeek( Upper( c ) ) } y se produce error area no
encontrada.
Gracias y un saludo.
Pepe.
Jose Lopez Carrasco
Mensajes: 215
Registrado: Lun Oct 20, 2008 11:38 pm

b

Mensaje por Jose Lopez Carrasco »

Probando e conseguido lo siguiente
METHOD MaskEdit4cDescripcionKeyUp( oSender, nKey, nFlags ) CLASS TForm1
If !EMPTY(::oMaskEdit4cDescripcion:VALUE)
::oSQLTable1:Locate('DESCRIPCION Like
'+"'"+::oMaskEdit4cDescripcion:VALUE+"*'" )
::oDBBrowse1:Refresh()
If ::oSQLTable1:FieldGetByName("DESCRIPCION") ==
::oMaskEdit4cDescripcion:VALUE .AND. !EMPTY(::oMaskEdit4cDescripcion:VALUE)
::oDBBrowse1:SetFocus()
::oDBBrowse1:GoRightMost()
EndIf
EndIf
RETURN Nil
Ignacio es correcto o hay otra forma mejor.
Muchas gracias.
Pepe.
"Jose Lopez Carrasco" <tritoncomputer@infonegocio.com> escribió en el
mensaje news:45e36046$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Quisiera hacer una busqueda incremental en un oDBBrowse1 con una tabla
> oSQLTable1 de access,
> he probado con la propiedad oSeek, el metodo Seek()
> y el evento:
> oBrw:OnSeek := {|o,c| DbSeek( Upper( c ) ) } y se produce error area no
> encontrada.
>
> Gracias y un saludo.
> Pepe.
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

b

Mensaje por ignacio »

José,
Basicamente se basa en el uso del método TDataSet:Locate(). Si te funciona
adelante aunque yo habría utilizado el evento OnSeek que para eso está.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Jose Lopez Carrasco" <tritoncomputer@infonegocio.com> escribió en el
mensaje news:[email=45e36fce@news.xailer.com...]45e36fce@news.xailer.com...[/email]
> Probando e conseguido lo siguiente
>
> METHOD MaskEdit4cDescripcionKeyUp( oSender, nKey, nFlags ) CLASS TForm1
>
> If !EMPTY(::oMaskEdit4cDescripcion:VALUE)
> ::oSQLTable1:Locate('DESCRIPCION Like
> '+"'"+::oMaskEdit4cDescripcion:VALUE+"*'" )
> ::oDBBrowse1:Refresh()
> If ::oSQLTable1:FieldGetByName("DESCRIPCION") ==
> ::oMaskEdit4cDescripcion:VALUE .AND.
> !EMPTY(::oMaskEdit4cDescripcion:VALUE)
> ::oDBBrowse1:SetFocus()
> ::oDBBrowse1:GoRightMost()
> EndIf
> EndIf
>
> RETURN Nil
>
> Ignacio es correcto o hay otra forma mejor.
>
> Muchas gracias.
> Pepe.
>
>
>
> "Jose Lopez Carrasco" <tritoncomputer@infonegocio.com> escribió en el
> mensaje news:45e36046$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Quisiera hacer una busqueda incremental en un oDBBrowse1 con una tabla
>> oSQLTable1 de access,
>> he probado con la propiedad oSeek, el metodo Seek()
>> y el evento:
>> oBrw:OnSeek := {|o,c| DbSeek( Upper( c ) ) } y se produce error area no
>> encontrada.
>>
>> Gracias y un saludo.
>> Pepe.
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Jose Lopez Carrasco
Mensajes: 215
Registrado: Lun Oct 20, 2008 11:38 pm

b

Mensaje por Jose Lopez Carrasco »

Ignacio entonces podria quedar asi:
METHOD MaskEdit3cAuxiliarEnter( oSender, oPrevCtl ) CLASS TForm1
::oSQLTable1:Sort("AUXILIAR ASC")
// no entiendo para que sirve esta asignacion si en el metodo Change le
indicamos el valor a buscar
::oDBBrowse1:oSeek := ::oMaskEdit3cAuxiliar
::oDBBrowse1:Refresh()
RETURN Nil
METHOD MaskEdit3cAuxiliarChange( oSender ) CLASS TForm1
::oDBBrowse1:Seek( oSender:Value )
RETURN Nil
METHOD DBBrowse1Seek( oSender, cSeek ) CLASS TForm1
If LEN(cSeek) < 1
cSeek := " "
EndIf
RETURN ::oSQLTable1:Locate('AUXILIAR Like '+"'"+cSeek+"*'" )
Por favor te ruego me indiques si he hecho al mal
Gracias
Pepe :-)
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

b

Mensaje por ignacio »

José,
Lo siento pero no entiendo tu código. Es infinítamente más sencillo. Por
favor revisa en la documentación el evento OnSeek. No obstante si lo que has
hecho te funciona adelante con ello. Pruebalo.
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Jose Lopez Carrasco" <tritoncomputer@infonegocio.com> escribió en el
mensaje news:45e45f51$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio entonces podria quedar asi:
>
> METHOD MaskEdit3cAuxiliarEnter( oSender, oPrevCtl ) CLASS TForm1
>
> ::oSQLTable1:Sort("AUXILIAR ASC")
>
> // no entiendo para que sirve esta asignacion si en el metodo Change le
> indicamos el valor a buscar
>
> ::oDBBrowse1:oSeek := ::oMaskEdit3cAuxiliar
> ::oDBBrowse1:Refresh()
>
> RETURN Nil
>
> METHOD MaskEdit3cAuxiliarChange( oSender ) CLASS TForm1
>
> ::oDBBrowse1:Seek( oSender:Value )
>
> RETURN Nil
>
> METHOD DBBrowse1Seek( oSender, cSeek ) CLASS TForm1
>
> If LEN(cSeek) < 1
> cSeek := " "
> EndIf
>
> RETURN ::oSQLTable1:Locate('AUXILIAR Like '+"'"+cSeek+"*'" )
>
> Por favor te ruego me indiques si he hecho al mal
>
> Gracias
>
> Pepe :-)
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Jose Lopez Carrasco
Mensajes: 215
Registrado: Lun Oct 20, 2008 11:38 pm

b

Mensaje por Jose Lopez Carrasco »

Ok gracias Ignacio :-(
Pepe
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

b

Mensaje por ignacio »

José,
De la documentación:
oBrw:OnSeek := {|o,c| DbSeek( Upper( c ) ) }
En tu caso:
oBrw:OnSeek := {|o,c| oDataSet:Locate( "CAMPO LIKE '*" + c + "*'" ) //
fijate que van comillas simples adicionales
Perdoname si me equivoco, pero da la sensación que ni siquiera has leido la
ayuda que por dos veces te he dicho que vieses. Mis disculpas sino es así.
Te recomiendo igualmente que le eches un vistazo (con detenimiento) a la
propiedad TBrowse:oSeek
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Jose Lopez Carrasco" <tritoncomputer@infonegocio.com> escribió en el
mensaje news:45e558f0$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ok gracias Ignacio :-(
>
> Pepe
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Jose Lopez Carrasco
Mensajes: 215
Registrado: Lun Oct 20, 2008 11:38 pm

b

Mensaje por Jose Lopez Carrasco »

Ignacio siento mi torpeza, pero he estado dos tardes intentando entender la
documentacion, la cual me ha costado bastente entenderla. Despues de muchas
pruebas
y tu ayuda ya lo manejo con soltura.
Perdon por hacerte perder el tiempo con preguntas simples, pues es la
primera vez que programo en windows, ya que yo soy de CLIPPER DOS.
Saludos y Gracias por todo.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45e55fe6$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> José,
>
> De la documentación:
>
> oBrw:OnSeek := {|o,c| DbSeek( Upper( c ) ) }
>
> En tu caso:
>
> oBrw:OnSeek := {|o,c| oDataSet:Locate( "CAMPO LIKE '*" + c + "*'" ) //
> fijate que van comillas simples adicionales
>
> Perdoname si me equivoco, pero da la sensación que ni siquiera has leido
> la ayuda que por dos veces te he dicho que vieses. Mis disculpas sino es
> así. Te recomiendo igualmente que le eches un vistazo (con detenimiento) a
> la propiedad TBrowse:oSeek
>
> Un saludo,
>
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Jose Lopez Carrasco" <tritoncomputer@infonegocio.com> escribió en el
> mensaje news:45e558f0$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Ok gracias Ignacio :-(
>>
>> Pepe
>>
>>
>
>
Responder