Posicionarse en el registro siguiente


([N4] Ramon Denuc) #1

Hola Foro,

¿En una búsqueda hay forma de posicionarse en el registro siguiente al más parecido, si en la búsqueda no se encuentra lo que se estaba buscando?

La búsqueda la estoy aplicando a una tabla que contiene un campo de formato HORA pero cuando lo encuentra una determinada hora, se queda hay, y lo que deseo hacer es que se posicione en el registro siguiente más parecido.

Saludos


([N3] pacosatu) #2

Hola Ramon.

Me parece que lo que quieres es una Búsqueda incremental como la que te estabas peleando hace unos días.

Si quieres intentarlo con JavaScript, es muy sencillo hacerlo:


// Manejador JavaScript que selecciona un registro determinado de la Rejilla
// Formulario
var oForm = theRoot.dataView()
// Rejilla
var oLista = oForm.control("GRD_LISTA")
var oRegistro = new VRegister(theRoot)
// Hora a buscar
var tHora = theRoot.varToTime("THORA")

oRegistro.setTable("<alias>/LISTA_HORAS")
oRegistro.readRegister("HORAS",[tHora],VRegister.SearchThisOrNext)

if (oRegistro) {
       oLista.setCurrentSelect(oRegistro)
}

  • La función readRegister() busca la Hora por el Índice HORAS y mediante la constante VRegister.SearchThisOrNext le indicamos que nos devuelva la Hora buscada o la siguiente disponible.
  • La función setCurrentSelect seleccionará en la Rejilla el registro devuelto por readRegister()

Pruébalo.
Saludos
Paco Satué


([N4] Ramon Denuc) #3

Hola Paco,

Muchísimas gracias, era exactamente eso lo que necesitaba y que no encontraba la forma de como hacerlo nativamente con Velneo. Con JS ni lo probé pues digamos no tengo ni idea.

Por esta te debo otra cerveza, ya no se cuantas llevo. :wink:

Espero que si no hay ningún incidente por parte nuestra, el próximo año podamos conocernos en el evento Life is soft 2016

Saludos,